htmlspecialchars
Заменяет специальные символы HTML на безопасные обозначения.
Синтаксис
htmlspecialchars(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): stringПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $string | string | Исходная строка. |
| $flags | int | Необязательный. Какие кавычки заменять; по умолчанию и одинарные, и двойные. |
| $encoding | ?string | Необязательный. Кодировка; по умолчанию UTF-8. |
Возвращаемое значение
stringСтрока, безопасная для вывода в HTML.
Примеры
Теги превращаются в обычный текст:
<?php
echo htmlspecialchars('<script>alert(1)</script>');Результат:
<script>alert(1)</script>Кавычки в значении атрибута:
<?php
$name = 'Tom "The Cat"';
echo '<input value="' . htmlspecialchars($name) . '">';Результат:
<input value="Tom "The Cat"">Примечания
Это главная защита от XSS: экранируйте всё, что пришло от пользователя и выводится на страницу. Экранируйте при выводе, а не при сохранении в базу.
См. также
- strip_tags — Удаляет из строки HTML-теги.
- nl2br — Вставляет тег br перед каждым переводом строки.
Вопросы и ответы по теме
В учебнике
- Безопасность — Основы безопасности сайта на PHP — XSS и экранирование, SQL-инъекции, хеширование паролей, CSRF-токены и проверка входных данных.