САМОУЧИТЕЛЬ PHP 4



         

Функции для преобразований символов - часть 2


string RawUrlDecode(string $st)

Аналогична UrlDecode(), но не воспринимает + как пробел.

Давайте теперь рассмотрим функцию, которая обычно используется в комбинации с echo. Основное ее назначение — гарантировать, что в выводимой строке ни один участок не будет воспринят как тэг.

string HtmlSpecialChars(string $str)

Заменяет в строке некоторые символы (такие как амперсант[E53] , кавычки и знаки "больше" и "меньше") на их HTML-эквиваленты, так, чтобы они выглядели на странице "самими собой". Самое типичное применение этой функции — формирование параметра value

в различных элементах формы, чтобы не было никаких проблем с кавычками, или же вывод сообщения в гостевой книге, если вставлять тэги пользователю запрещено. Например, пусть содержимое книги хранится в массиве $Book в очевидном формате. Тогда следующий фрагмент распечатывает содержимое гостевой книги, заботясь о том, чтобы тэги не воспринимались браузером как описания форматирования:

<?foreach($Book as $k=>$v) {?>

  Èìÿ: <?=$v['name']?><br>

  Òåêñò: <?=HtmlSpecialChars($v['text'])?>

  <hr>

<?}?>

Используя этот незамысловатый прием, вы гарантированно избавите себя от проблем с запретом тэгов.

Начинающие Web-программисты для решения задачи запрета тэгов часто пытаются просто удалить их из строки — например, применив функцию strip_tags(). Это метод довольно плох, потому что всегда существует вероятность того, что злоумышленник сможет "обмануть" эту функцию. Конечно, еще хуже метод с применением регулярных выражений, потому что, как известно, с их помощью вовсе невозможно выделить некоторые тэги из строки — например, тэги такого вида: <a name='a>b'>.

string StripSlashes(string $st)

Заменяет в строке $st íåêîòîðûå предваренные слэшем символы на их однокодовые эквиваленты. Это относится к следующим символам: ", ', \ и никаким другим.

string AddSlashes(string $st)

Вставляет слэши только перед следующими символами: ', "

и \. Функцию очень удобно использовать при вызове eval() (эта функция выполняет строку, переданную ей в параметрах, так, как будто имеет дело с небольшой PHP-программой; о ней (функции) мы еще поговорим, и при том очень подробно).




Содержание  Назад  Вперед