If you are using addcslashes() to encode text which is to later be decoded back to it's original form, you MUST specify the backslash (\) character in charlist!
Example:
<?php
$originaltext = 'This text does NOT contain \\n a new-line!';
$encoded = addcslashes($originaltext, '\\');
$decoded = stripcslashes($encoded);
//$decoded now contains a copy of $originaltext with perfect integrity
echo $decoded; //Display the sentence with it's literal \n intact
?>
If the '\\' was not specified in addcslashes(), any literal \n (or other C-style special character) sequences in $originaltext would pass through un-encoded, but then be decoded into control characters by stripcslashes() and the data would lose it's integrity through the encode-decode transaction.addcslashes
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
addcslashes
Референца за `function.addcslashes.php` со подобрена типографија и навигација.
addcslashes
(PHP 4, PHP 5, PHP 7, PHP 8)
addcslashes — Quote string with slashes in a C style
= NULL
Цитатна низа со коси црти во C стил characters parameter.
Параметри
string-
Стрингот што треба да се избегне.
characters-
Враќа низа со коси црти пред знаците што се наведени во
charactersСписок на знаци што треба да се избегнат. Ако\n,\rсодржи знациитн., тие се претвораат во C-стил, додека другите неалфанумерички знаци со ASCII кодови пониски од 32 и повисоки од 126 се претвораат во октална репрезентација.
charactersКога дефинирате низа од знаци восо Опсези ord() Исто така, ако првиот знак во опсегот има повисока ASCII вредност од вториот знак во опсегот, нема да се конструира опсег. Само почетниот, крајниот и знакот за период ќе бидат избегнати. Користете јаПример #1 addcslashes() аргумент, погрижете се да знаете кои знаци доаѓаат помеѓу знаците што ги поставувате како почеток и крај на опсегот.
<?php
echo addcslashes('foo[ ]', 'A..z');
// output: \f\o\o\[ \]
// All upper and lower-case letters will be escaped
// ... but so will the [\]^_`
?>Пример #2 addcslashes() функцијата за да ја најдете ASCII вредноста за знак.
<?php
echo addcslashes("zoo['.']", 'z..A');
// output: \zoo['\.']
?>со Знаци во погрешен Редослед addcslashes() Внимавајте ако одлучите да избегнете знаци 0, a, b, f, n, r, t и v. Тие ќе бидат претворени во \0, \a, \b, \f, \n, \r, \t и \v, сите од кои се однапред дефинирани секвенци за бегство во C. Многу од овие секвенци се дефинирани и во други јазици изведени од C, вклучувајќи го и PHP, што значи дека можеби нема да го добиете посакуваниот резултат ако го користите излезот од
characters.
Вратени вредности
Враќа избегнатиот стринг.
Примери
characters за генерирање код на тие јазици со овие знаци дефинирани во
Пример #3 addcslashes() example
<?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() - Цитирање на мета знаци
Белешки од корисници 3 белешки
addcslashes() treats NUL as a string terminator:
assert("any" === addcslashes("any\0body", "-"));
unless you order it backslashified:
assert("any\\000body" === addcslashes("any\0body", "\0"));
(Uncertain whether this should be declared a bug or simply that addcslashes() is not binary-safe, whatever that means.)I have found the following to be much more appropriate code example:
<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\@\177..\377");
?>
This will protect original, innocent backslashes from stripcslashes.