Экранирует строку с помощью слэшей


(PHP 4, PHP 5)

addslashesЭкранирует строку с помощью слэшей

Описание

string addslashes ( string $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);
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addcslashes() - Экранирует cтроку слэшами в стиле языка C
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc