Экранирует cтроку слэшами в стиле языка C


(PHP 4, PHP 5)

addcslashesЭкранирует cтроку слэшами в стиле языка C

Описание

string addcslashes ( string $str , string $charlist )

Возвращает строку, экранированную обратными слэшами перед символами, указанными в параметре charlist.

Список параметров

str

Экранируемая строка.

charlist

Список экранируемых символов. Если charlist содержит символы \n, \r и т.п., они будут преобразованы в стиле C, тогда как другие нецифробуквенные символы с ASCII-кодами ниже 32 и выше 126 будут преобразованы в восьмеричное представление.

Следует быть внимательным при указании диапазона символов в аргументе charlist. Проверяйте, какие символы входят в этот диапазон.

<?php
echo addcslashes('foo[ ]''A..z');
// выводит:  \f\o\o\[ \]
// Будут экранированы заглавные и строчные английские буквы
// ... а также [\]^_`
?>
Также, если ASCII-код первого символа диапазона больше, чем последнего, диапазон не будет создан. Вместо этого будут экранироваться только первый символ, последний символ и точка. Для определения ASCII-кода символов используйте функцию ord().
<?php
echo addcslashes("zoo['.']"'z..A');
// выводит:  \zoo['\.']
?>

Будьте внимательны при экранировании символов 0, a, b, f, n, r, t и v. Они будут преобразованы в \0, \a, \b, \f, \n, \r, \t и \v, которые являются предопределенными escape-последовательностями в языке Си. Многие из этих последовательностей также определены в других си-подобных языках, включая PHP. Это означает, что вы можете не получить ожидаемого результата, если будете использовать вывод функции addcslashes() для создания кода в этих языках с использованием этих символов в charlist.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия Описание
5.2.5 Добавлены экранирующие последовательности \v и \f.

Примеры

charlist, например, "\0..\37", что проэкранирует все символы с ASCII-кодами от 0 до 31.

Пример #1 addcslashes() example

<?php
$escaped 
addcslashes($not_escaped"\0..\37!@\177..\377");
?>

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

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