Cadenas
PHP Manual

addcslashes

(PHP 4, PHP 5)

addcslashes — Escapa una cadena de la misma forma que lo hace C

Descripción

string addcslashes ( string $cadena , string $lista_caracteres )

Devuelve una cadena con barras invertidas antes de los caracteres definidos en el parámetro lista_caracteres . Si lista_caracteres contiene caracteres como \n, \r, etc. también se convierten de la misma forma, mientras que los caracteres con códico ASCII inferior a 32 y superior a 126 son convertidos a representación octal.

Se debe tener en cuenta que si se marcan para escapar los caracteres 0, a, b, f, n, r, t y v, se transforman en los caracteres especiales \0, \a, \b, \f, \n, \r, \t y \v. En PHP \0 (NULL), \r (retorno de carro), \n (nueva línea) y \t (tabulador) son secuencias de escape predefinidas, mientras que en C todos los caracteres especiales mencionados anteriormente son secuencias de escape predefinidas.

El parámetro lista_caracteres puede indicar rangos como por ejemplo "\0..\37", que escaparía todos los caracteres con código ASCII entre 0 y 31.

Example#1 Ejemplo de addcslashes()

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

Al definir secuencias de caracteres en el parámetro lista_caracteres se debe asegurar que se quieren escapar todos los caracteres incluidos en el rango.

<?php
echo addcslashes('prueba[ ]''A..z');
// La salida seria:  \p\r\u\e\b\a\[ \]
// Se escapan todos los caracteres en mayusculas y minusculas
// ... pero tambien los caracteres [\]^_` , los tabuladores, los retornos 
// de carro, las nuevas lineas, etc.
?>
Además, si el primer carácter del rango tiene un valor ASCII superior al segundo carácter que define el rango, no se puede formar el rango. En otras palabras, no se pueden definir rangos descendentes y por tanto solo se escaparán el primer carácter del rango, el segundo y los puntos que separan a los caracteres. Para obtener el valor ASCII de un carácter, se puede emplear la función ord().
<?php
echo addcslashes("zoo['.']"'z..A');
// La salida seria:  \zoo['\.']
?>

Vea también stripcslashes(), stripslashes(), htmlspecialchars() y quotemeta().


Cadenas
PHP Manual