(PHP 4, PHP 5, PHP 7)
addslashes — Экранирует строку с помощью слешей
$str
)
Возвращает строку с обратным слешом перед символами, которые нужно экранировать.
Экранируются одиночная
кавычка ('), двойная кавычка
("), обратный слеш (\) и
NUL (NULL
байт).
Примером использования функции addslashes() может служить добавление данных в строку, которую будет выполнять PHP. Например, если O'Reilly помещается в переменную $str, то вам необходимо экранировать $str. (т.е. eval("echo '".addslashes($str)."';"); )
Для экранирования параметров в базе данных нужно использовать специализированные экранирующие функции СУБД (т.е. (e.g. mysqli_real_escape_string() для MySQL или pg_escape_literal(), pg_escape_string() для PostgreSQL). СУБД имеют разные спецификации для идентификаторов (т.е. имен таблиц, имен полей) и для параметров. Некоторые СУБД, такие как PostgreSQL, предоставляют отдельные функции экранирования идентификаторов (pg_escape_identifier()), но не все СУБД предоставляют такое API. В этом случае ориентируйтесь на документацию к вашей базе данных для выбора верного способа экранирования.
Если в вашей СУБД нет экранирующей функции и она использует символ \ для экранирования специальных символов, то вы можете использовать функцию addslashes(), но только если этот метод экранирования походит для вашей базы данных. Обратите внимание на то, что использование этой функции для экранирования параметров может привести к проблемам безопасности во многих базах данных.
Директива конфигурации magic_quotes_gpc по умолчанию имела значение on в версиях до PHP 5.4, при этом функция addslashes() автоматически применялась ко всем данным GET, POST, и COOKIE. Не используйте addslashes() для данных, обработанных magic_quotes_gpc, чтобы избежать двойного экранирования. Для проверки состояния этой директивы используется get_magic_quotes_gpc().
str
Экранируемая строка.
Возвращает экранируемую строку.
Пример #1 Пример использования addslashes()
<?php
$str = "Ваше имя O'Reilly?";
// выводит: Ваше имя O\'Reilly?
echo addslashes($str);
?>