array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'function.addslashes.php', 1 => 'addslashes', ), 'up' => array ( 0 => 'ref.strings.php', 1 => 'Funciones de strings', ), 'prev' => array ( 0 => 'function.addcslashes.php', 1 => 'addcslashes', ), 'next' => array ( 0 => 'function.bin2hex.php', 1 => 'bin2hex', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/strings/functions/addslashes.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
addslashes — Escapa un string con barras invertidas
Devuelve un string con barras invertidas delante de los caracteres que necesitan
ser escapados. Estos caracteres son la comilla simple ('
),
comilla doble ("
), barra invertida
(\
) y NUL (el byte null
).
Un ejemplo del uso de addslashes() es cuando
se introducen datos en un string que es evaluado por PHP. Por ejemplo,
si O'Reilly
se almacena en $str, es necesario escapar
$str. (p.ej. eval("echo '".addslashes($str)."';"); )
Para escapar parámetros de bases de datos, deberían usarse funciones de escape específicas de cada SGBD por razones de seguridad (p.ej. mysqli_real_escape_string() para MySQL o pg_escape_literal(), pg_escape_string() para PostgreSQL). Los SGBD poseen una especificación de escape diferente para identificadores (p.ej. Nombre de tabla, nombre de campo) que para parámetros. Algunos SGBD como PostgreSQL proporcionan una función es escape de identificadores, pg_escape_identifier(), pero no todos los SGBD proporcionan una API de escape de identificadores. Si este es el caso, consulte el manual del sistema de base de datos para el método apropiado de escape.
Si un SGBD no posee una función de escape y dicho SGBD
usa \
para escapar caracteres especiales, podría ser posible
usar esta función únicamente cuando este método de escape es adecuado para
la base de datos. Por favor, observe que el uso de
addslashes() para el escape de parámetros de bases de datos
puede ser la causa de problemas de seguridad en la mayoría de las bases de datos.
La directiva de PHP
magic_quotes_gpc estaba activada (on
) por defecto antes
de PHP 5.4, y básicamente ejecutaba la función addslashes() en
todos los datos GET, POST y COOKIE. No utilizar
addslashes() en las cadenas que ya
se han escapado con
magic_quotes_gpc ya que se
hará un doble escape. La función
get_magic_quotes_gpc() podría ser útil
para comprobar esto.
str
El string a escapar.
Devuelve un string escapado.
Ejemplo #1 Un ejemplo de addslashes()
<?php
$str = "Is your name O'Reilly?";
// Outputs: Is your name O\'Reilly?
echo addslashes($str);
?>