(PHP 4, PHP 5, PHP 7)
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()
<?php $escaped = addcslashes($not_escaped, "\0..\37!@\177..\377"); ?>