PHP функция htmlspecialchars()
Пример
Преобразовать предопределенные символы "<" (меньше) и ">" (больше) в HTML-символы:
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>
HTML-вывод вышеуказанного кода таков (просмотрите исходный код):
<!DOCTYPE html> <html> <body> This is some <b>bold</b> text. </body> </html>
Вывод браузера для вышеуказанного кода:
This is some <b>bold</b> text.
Определение и использование
Функция htmlspecialchars() преобразует предопределенные символы в HTML-символы.
Предопределенные символы:
- & (и) становится &
- " (двойная кавычка) становится "
- ' (одинарная кавычка) становится '
- < (меньше) становится <
- > (больше) становится >
Совет:Чтобы преобразовать специальные HTML-символы в символы, используйте htmlspecialchars_decode() Функция.
Синтаксис
htmlspecialchars(string,flags,character-set,double_encode)
Параметры | Описание |
---|---|
string | Обязателен. Определяет строку, которую нужно преобразовать. |
flags |
Опционально. Определяет, как обрабатывать кавычки, недопустимые коды и какой тип документа использовать. Доступные типы кавычек:
Недопустимые коды:
规定使用的文档类型的附加 flags:
|
character-set |
可选。一个规定了要使用的字符集的字符串。 允许的值:
注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。 |
double_encode |
可选。布尔值,规定了是否编码已存在的 HTML 实体。
|
技术细节
返回值: |
返回被转换的字符串。 如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志。 |
PHP 版本: | 4+ |
更新日志: |
在 PHP 5 中,character-set 参数的默认值改为 UTF-8。 在 PHP 5.4 中,新增了:ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 和 ENT_XHTML。 在 PHP 5.3 中,新增了 ENT_IGNORE。 在 PHP 5.2.3 中,新增了 double_encode Параметры. В PHP 4.1 была добавлена character-set Параметры. |
Более примеров
Пример 1
Преобразовать некоторые предопределенные символы в HTML-символы:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // Преобразование только двойных кавычек echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Преобразование двойных и одинарных кавычек echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // Не преобразовывать какие-либо кавычки ?>
HTML-вывод вышеуказанного кода таков (просмотрите исходный код):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
Вывод браузера для вышеуказанного кода:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Пример 2
Преобразовать двойные кавычки в HTML-символы:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // Преобразование двойных и одинарных кавычек ?>
HTML-вывод вышеуказанного кода таков (просмотрите исходный код):
<!DOCTYPE html> <html> <body> Я люблю "PHP" </body> </html>
Вывод браузера для вышеуказанного кода:
Я люблю "PHP".