addcslashes

Description

addcslashes
( string$str
, string$charlist
) : string

Returns a string with backslashes before characters that are
listed in charlist parameter.

Parameters

str

The string to be escaped.

charlist

A list of characters to be escaped. If
charlist contains characters
\n, \r etc., they are
converted in C-like style, while other non-alphanumeric characters
with ASCII codes lower than 32 and higher than 126 converted to
octal representation.

When you define a sequence of characters in the charlist argument
make sure that you know what characters come between the
characters that you set as the start and end of the range.

<?phpecho addcslashes('foo[ ]', 'A..z');// output: \f\o\o\[ \]// All upper and lower-case letters will be escaped// ... but so will the [\]^_`?>

Also, if the first character in a range has a higher ASCII value
than the second character in the range, no range will be
constructed. Only the start, end and period characters will be
escaped. Use the ord() function to find the
ASCII value for a character.

<?phpecho addcslashes("zoo['.']", 'z..A');// output: \zoo['\.']?>

Be careful if you choose to escape characters 0, a, b, f, n, r, t and
v. They will be converted to \0, \a, \b, \f, \n, \r, \t and \v, all of
which are predefined escape sequences in C. Many of these sequences are
also defined in other C-derived languages, including PHP, meaning that
you may not get the desired result if you use the output of
addcslashes() to generate code in those languages
with these characters defined in charlist.

Return Values

Returns the escaped string.

Changelog

Version

Description

5.2.5

The escape sequences \v and \f were added.

Examples

charlist like "\0..\37", which would
escape all characters with ASCII code between 0 and 31.

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.