str_replace, solución óptima?

Kaos

Mirar esta funcion:

function validaform($texto,$tipo)
{
if($tipo=='texto')
{
$array = array('º','ª','!','|','"','@','·','#','$','%','&','/','(',')','=','?','¡','¿','','`','[',']','+','*','Ž','š','{','}','Ç','<','>');
$input = str_replace($array,"", $texto);
return($input);
}
}

El objetivo es obvio pero... creeis q hay alguna forma más optima de hacer algo similar? hay q tener en cuenta q esa funcion no excluye todos los elementos.
Solo deberia dejar de la A-Z,a-z,1-9... como lo véis?

erdanblo

Expresiones regulares, pero yo ni torta, a ver si alguien te puede echar un cable.

guner

Con regexp tienes todas las funciones preg_*() (preg_replace() para este caso)

$re = '#[a-z0-9]#i';
preg_replace($re, null, $asunto);

Kaos

Muy bueno!! :D gracias por la ayuda, ere un crá

Whose

Yo de paso te dejo un manual de expresiones regulares que me vino muy bien hace tiempo
http://www.php-hispano.net/archivos/Manuales/212/1

Usuarios habituales

  • Whose
  • Kaos
  • guner
  • erdanblo