addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

addcslashes(string $string, string $characters): string

Функция добавляет обратные слеши перед символами, которые перечислили в параметре characters, и возвращает заэкранированную строку.

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

string

Строка, в которой требуется заэкранировать символы.

characters

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

Диапазон символов в аргументе characters определяют правильными символами начала и конца диапазона, чтобы символы между начальным и конечным значением диапазона образовывали правильную последовательность символов.

Пример #1 Пример работы функции addcslashes() с диапазонами

<?php

echo addcslashes('foo[ ]', 'A..z');
// Выводит: \f\o\o\[ \]

// Функция заэкранирует заглавные и строчные английские буквы
// ... а также [\]^_`

?>
Функция не создаст диапазон, если ASCII-код первого символа диапазона больше последнего. Вместо этого функция заэкранирует только первый символ, последний символ и точку. Значение ASCII-кода символов находят функцией ord().

Пример #2 Пример поведения функции addcslashes() с символами в неправильном порядке

<?php

echo addcslashes("zoo['.']", 'z..A'); // Выводит: \zoo['\.']

?>

При экранировании символов 0, a, b, f, n, r, t и v соблюдают осторожность. Функция преобразовывает эти символы в предопределённые управляющие последовательности языка C: \0, \a, \b, \f, \n, \r, \t и \v. Эти последовательности работают и в других Си-подобных языках, включая PHP. Поэтому с этими символами в аргументе characters функция addcslashes() иногда возвращает результат, который интерпретируется как управляющие последовательности, если использовать вывод функции для генерации кода на этих языках.

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

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

Примеры

Символы наподобие "\0..\37" в параметре characters заэкранируют каждый символ с ASCII-кодами от 0 до 31.

Пример #3 Пример использования функции addcslashes()

<?php

$not_escaped
= "PHP isThirty\nYears Old!\tYay to the Elephant!\n";
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
echo
$escaped;

?>

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

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