Ввод фильтрующей формы PHP - PullRequest
1 голос
/ 15 декабря 2009

Я уверен, что кто-то уже говорил об этом раньше, но я не нашел его в быстром поиске по сайту. Сейчас я пытаюсь отфильтровать некоторые входные данные из WYSIWYG, чтобы он удалял такие символы, как: ¢ © ÷ µ · ¶ ± € £ ®§ ™ ¥, но сохранял символы HTML. Я пробовал htmlentities и htmlspecialcharacters, но похоже, что эти персонажи остаются в такте. Какие-нибудь методы уже представлены, или у кого-нибудь есть хорошее регулярное выражение, которое бы справилось с этим? Спасибо!

Ответы [ 4 ]

1 голос
/ 15 декабря 2009

Если вы используете PHP> 5.2.0 Фильтр может быть полезным.

0 голосов
/ 15 декабря 2009

htmlentities() и htmlspecialchars() не будут работать для вас, если вы хотите полностью удалить этих символов, а не просто конвертировать их в объекты HTML.

EDIT

Я только что заметил, что однажды вы сказали, что хотите сохранить сущности HTML. Если это так, используйте htmlentities() !! Он преобразует все эти символы в эквивалент HTML-сущности. Если вы повторяете это, вы все равно увидите символы, которые пытались удалить, но если вы просматриваете источник, вы увидите вместо этого отформатированный объект &name;.


Возможно, вам понадобится регулярное выражение для этого, как бы печально это ни было. Большинство функций PHP пытаются сохранить эти символы для вас в том или ином формате. Удивительно, что они не являются функцией их удаления, о которой я знаю, по крайней мере!

0 голосов
/ 15 декабря 2009

Вы пробовали функцию htmlentities()? Попробуйте вот так:

$text = htmlentities($text);

Есть некоторые другие дополнительные параметры, которые вы можете проверить на http://php.net/manual/en/function.htmlentities.php. Возможно, вам придется установить quote_style и charset как минимум.

0 голосов
/ 15 декабря 2009

это регулярное выражение должно работать:

$ text = preg_replace ('/ [¢ © ÷ µ · ¶ ± € £ ®§ ™ ¥] * /', '', $ text);

Вы также можете заменить такие предметы:

$ bad = array ('©', '®'); $ good = array ('& copy;', '& reg;');

$ text = preg_replace ($ bad, $ good, $ text);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...