Проверьте длину набранных символов в WYSIWYG - PullRequest
1 голос
/ 17 февраля 2010

На моем сайте, если использовать textarea + WSYWWYG (Wyzz WYSIWYG).

Я хотел бы минимизировать и максимизировать символы, введенные пользователем. (например, от 100 до 1000).

После публикации формы я проверяю длину отправленного поля. (strln($_POST['text'..) Но редакторы WSYWYG публикуют поле в формате HTML, поэтому, если пользователь введет: fg, длина будет 9 (<P>fg</P>9).

Может ли кто-нибудь подсказать мне, как я могу проверить реальную длину напечатанной строки?

Спасибо.

1 Ответ

0 голосов
/ 17 февраля 2010

Самый простой способ, даже если он не даст идеального результата, - удалить теги HTML из входных данных перед вызовом strlen.

Это можно сделать с помощью функции strip_tags:

Эта функция пытается вернуть строку со всеми тегами HTML и PHP с данной ул.


Итак, часть кода, подобная этой, может помочь:

$html = $_POST['text'];
$stripped = strip_tags($html);
$length_noHtml = strlen($stripped);
if ($length_noHtml >= 100 && $length_noHtml <= 1000) {
    // OK
} else  {
    // Not OK
}


В качестве идентификатора, если вы используете для своего приложения некоторую многобайтовую кодировку (я думаю о UTF-8) , вы можете использовать функцию mb_strlen вместо strlen:

  • strlen будет подсчитывать количество байтов в вашей строке
  • , в то время как mb_strlen будет считать количество символов.
...