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-программой; о ней (функции) мы еще поговорим, и при том очень подробно).