Oct
06
06
Esto es una forma de limpiar tu cadena de caracteres no deseados, que nos puede ser util especialmente antes de insercciones a nuestra base de datos o donde necesitemos verificar los datos mandados por el usuario.
function limpiar ($cadena){
if (empty($cadena)) return false;
//limpiamos todos los caracteres invalidos
$nueva_cadena = ereg_replace("[^ A-Za-z0-9_]", "", $cadena);
return $nueva_cadena;
}
$cadena = "Esto es un texto de letras, numeros 12345 y caracteres raros !£$%^&";
echo limpiar ($cadena);
Tags: PHP, Scripts

















¿y los irlandeses?, p.ej.: O’hara
PD: no reinventemos la rueda: mysql_escape_string, mysql_real_escape_string y add_slashes están para estas cosas
Con
Camino 1.6.4 y
Mac OS X
@maeghith: Te invito a que pruebes la diferencia.
$cadena = “Esto es un texto de letras, numeros 12345 y caracteres raros !£$%^&”;
echo limpiar ($cadena).”\n”;
echo mysql_escape_string($cadena).”\n”;
echo mysql_real_escape_string($cadena).”\n”;
echo AddSlashes($cadena).”\n”;
echo mysql_escape_string(mysql_real_escape_string(AddSlashes($cadena))).”\n”;
sin mencionar que para usar mysql_real_escape_string y mysql_escape_string necesitamos tener una conexion a una db.
Gracias por tu comentario
Con
Mozilla Firefox 2.0.0.12 y
Mac OS X
Había entendido que era
Así que asumo que esa conexión existe.
Evidentemente que hay diferencias, no he dicho que fuesen a dar el mismo resultado
Pero parece que no has entendido mi comentario sobre el pobre señor O’Hara, irlandés él.
He probado el código (ni que hiciera falta, con la expresión regular tan facilona en que se basa el filtro, pero tenía un rato
), y aún así insisto en que hay mejores formas de hacer las cosas que reinventar la rueda. De hecho yo te invito a que pruebes tu el siguiente código (espero que no hayas cambiado el filtro de wp por el tuyo
):
$cadenas = array(
“Jim O’Hara”,
“Abdul-Mu’izz”,
“Toño Güell Marañón”,
“Adélaïde Garçon”,
“Esto es un texto de letras, numeros 12345 y caracteres raros !£$%^&”
);
$funciones = array(
“limpiar”,
“addslashes”,
“mysql_escape_string”,
“mysql_real_escape_string”
);
mysql_connect( ‘db’, ‘usr’, ‘***’);
echo “<pre>\n”;
foreach( $funciones as $funcion ){
echo “\n—-”,$funcion,”—–\n”;
var_dump(
array_map( $funcion, $cadenas )
);
}
echo “\n</pre>”;
Con
Camino 1.6.4 y
Mac OS X
@maeghith
@PD: no reinventemos la rueda
@no he dicho que fuesen a dar el mismo resultado
Con el echo de decir reinventar la rueda quieres decir que producira el mismo resultado
.
@Evidentemente que hay diferencias
Si hay diferencias no crees que no es reinventar la rueda?
mysql_real_escape_string y mysql_escape_string cumplen su trabajo para injecciones sql y lo demas?
Saludos
Con
Mozilla Firefox 2.0.0.12 y
Mac OS X
Me parece una forma un poco “radical” de filtrar texto, incluso para una base de datos.
Hay caracteres que son considerados raros por esa expresión regular, y sin embargo no es conveniente eliminarlos, como ñ, á, ü, â, ‘, etc.
Imagino que a eso se refiere maeglith ^_^
Con
Mozilla Firefox 3.0.3 y
Ubuntu Linux
Me parece una forma un poco radical de filtrar texto, incluso para inserciones a una base de datos.
Hay caracteres que son considerados “raros” por esa expresión regular pero que no es conveniente eliminar, como ñ, á, ü, ‘, etc.
Imagino que es a eso a lo que se refiere maeglith ^_^
Con
Mozilla Firefox 3.0.3 y
Ubuntu Linux
Инфа что надо!
Con
Internet Explorer 7.0 y
Windows XP