Функция htmlspecialchars в PHP
Функция htmlspecialchars() позволяет преобразовать html-теги в специальные сущности. Данная функция используется, главным образом, для преобразования данных, получаемых от пользователя через гостевую книгу, форму обратной связи и т.п.
Синтаксис:
1 |
string htmlspecialchars ( string string [, int quote_style [, string charset]] ) |
Главный и обязательный аргумент для функции – это исходная строка string.
Второй необязательный аргумент quote_style определяет, как должны быть преобразованы кавычки. Его возможные значения:
ENT_COMPAT – оставляет без изменений одиночные кавычки и преобразует двойные кавычки, ENT_QUOTES – будут преобразованы и двойные и одинарные кавычки
ENT_NOQUOTES – любые кавычки остаются без изменений
Если вы не указываете параметр quote_style, то по умолчанию его значение будет соответствовать ENT_COMPAT.
В версии PHP 5.4 также добавлены новые параметры:
ENT_SUBSTITUTE – Заменит некорреткные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и FFFD; (если используется другая кодировка), вместо возврата пустой строки.
ENT_DISALLOWED – заменяет неверные коды символов символом замены юникода U+FFFD (UTF-8) или FFFD (если используется другая кодировка).
ENT_HTML401 – обработает код в соответствии с HTML 4.01.
ENT_XML1 – обработает код в соответствии с XML 1
ENT_XHTML – обработает код в соответствии с XHTML
ENT_HTML5 – обработает код в соответствии с HTML5
В версии 5.3 добавлен параметр ENT_IGNORE (отбросит все некорректные участки кода, вместо возврата пустой строки).
Третий аргумент charset также является необязательным и определяет кодировку, в которой будет происходить преобразование. До версии php 5.4 кодировкой по умолчанию является ISO-8859-1. Начиная с версии 5.4.0 кодировка по умолчанию UTF-8.
Функция htmlspecialchars() преобразует следующие специальные символы:
1 2 3 4 5 |
'&' (амперсанд) преобразуется в '&' ''' (одиночная кавычка) преобразуется в ''' (работает только в режиме ENT_QUOTES). '"' (двойная кавычка) преобразуется в '"' (будет преобразовано, если не выбран режим ENT_NOQUOTES ). '>' (знак "больше чем") преобразуется в '>' '<' (знак "меньше чем") преобразуется в '<' |
Рассмотрим примеры:
1 2 3 4 5 |
<?php $newlink = htmlspecialchars("<a href='somelink'>Link</a>", ENT_QUOTES); echo $newlink; // выведет <a href='somelink'>Link</a> ?> |
Другой пример:
1 2 3 4 5 |
<?php $newmessage = htmlspecialchars("<script>alert('ok');</script>", ENT_QUOTES); echo $newmessage; //выведет <script>alert('ok');</script> ?> |
Другие посты
Категория: PHP-скрипты