string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] ) В HTML деякі символи мають особливий сенс і повинні бути представлені в вигляді HTML сутностей, щоб зберегти їх значення. Ця функція повертає рядок, над якою проведені ці перетворення. Якщо вам потрібно перетворити всі можливі сутності, використовуйте htmlentities().
Якщо вхідний рядок передана в цю функцію і результуючий документ використовують однакову кодування символів, то цієї функції достатньо, щоб підготувати дані для вставки в більшість частин HTML документа. Однак, якщо дані містять символи, що не визначені в кодуванні символів результуючого документа і ви очікуєте збереження цих символів (як числові або іменовані сутності), то вам буде недостатньо цій і htmlentities() функцій (які тільки перетворять підрядки з відповідними сутностями). Необхідно використовувати функцію mb_encode_numericentity().
Приклад #1 Приклад використання функції htmlspecialchars()
$new = htmlspecialchars("Test", ENT_QUOTES); echo $new; // <a href='test'>Test</a> ?>
Зауваження: Зверніть увагу, що функція не виробляє інших перетворень крім описаних вище. Для перетворення всіх HTML сутностей використовуйте htmlentities().
Починаючи з PHP 5.4 вони поміняли кодування від "ISO-8859-1" до "utf-8". Так що якщо ви отримуєте NULL функції htmlspecialchars або функція htmlentities
де у вас є тільки набір
echo htmlspecialchars($string); echo htmlentities($string); ?>
ви можете виправити це шляхом
echo htmlspecialchars($string, ENT_COMPAT,'ISO-8859-1', true); echo htmlentities($string, ENT_COMPAT,'ISO-8859-1', true); ?>
На Linux ви можете знайти скрипти потрібно виправити
grep -Rl "htmlspecialchars\\|htmlentities" /path/to/php/scripts/
Источник: http://php.net/manual/ru/function.htmlspecialchars.php |