Limpiar cadena de texto

Iniciado por HckDrk, Octubre 17, 2012, 03:39:57 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 17, 2012, 03:39:57 AM Ultima modificación: Marzo 27, 2014, 05:45:00 PM por Expermicid
hola todos, he hecho un pequeño script para poder limpiar una cadena de texto, solo se permiten números y el alfabeto, aquí el pequeño código...

Código: php

<?php

function limpiar($cadena){

$abc=array(" ","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
for($i=0;$i<strlen($cadena);$i++){
if(is_numeric($cadena[$i]) || in_array($cadena[$i],$abc)){
$cadena_1.=$cadena[$i];
}
}

return $cadena_1;
}
if($_POST['enviar']=="ok"){
echo limpiar($_POST['cadena']);
}

?>


si desean agregar otro carácter para que sea permitido, agréguenlo en el array....

aquí pueden ver su funcionamiento! (: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

saludos!  ;D

Está bueno el script, aunque con preg_match te ahorras todas esas líneas indicando [a-zA-Z_] etc, saludos.
Cada vez que me das Karma me motivas

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Está bueno el script, aunque con preg_match te ahorras todas esas líneas indicando [a-zA-Z_] etc, saludos.

bro! xt3mp! cuanto tiempo! :D saca el psy! d[-.-]b xD

esto lo hice en un ratito libre que me hice xD, si no mal recuerdo (que ya tengo bastante tiempo fuera de esto, estoy demasiado desactualizado! D:) solo preg_match valida si contiene letras, mas no te la limpia, y mi objetivo era limpiar cualquier carácter que no fuera algún numero o letra!

saludos bro! :D espero te acurdes de yo! D:

No se mucho de php, pero intentaría usar los ctype para estos casos

Código: php

<?php

function limpiar($cadena){

for($i=0;$i<strlen($cadena);$i++){
if(ctype_alnum($cadena[$i])){
$cadena_1.=$cadena[$i];
}
}

return $cadena_1;
}
if($_POST['enviar']=="ok"){
echo limpiar($_POST['cadena']);
}

?>


con este ctype no toma los espacios, saltos de linea, tabulaciones, etc. pero solo faltaría agregarle la condición ctype_cntrl($cadena[$i]).
existen muchos otras funciones para ctype: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Octubre 21, 2012, 05:12:21 PM #4 Ultima modificación: Octubre 21, 2012, 05:15:59 PM por alexander1712
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Está bueno el script, aunque con preg_match te ahorras todas esas líneas indicando [a-zA-Z_] etc, saludos.

Idem pero no lo haría con preg_match me parece más idóneo preg_replace.

yo usé preg_replace para hacer una función que genera una url seo por decirlo así, agarra el titulo original y lo tranforma para que quede como una url seo.

Código: php

Public Function set_seo($string)
   {
    return preg_replace('/[^\-a-zA-Z0-9]/', '', preg_replace('/\s+/', '-',strtolower($string)));
   }


(aclaro que el public es porque lo saqué de una clase)

es que tu función es un poco exagerada ante el consumo de recursos.

Código: php
$_POST['enviar']=="ok"


me refiero a que por ejemplo en esa linea no te pusiste a revisar el gasto innecesario de parsear el string ok cuando lo podrías haber puesto literal. ya con eso solo haces derroche de recursos, y sin hacer incapié en las estructuras que utilizaste, en realidad es una simple opinión no hace falta que me hagan mucho caso, es que soy bastante molesto en cuanto se refiere a consumo de recursos xD

esa y otras funciones están aplicadas en mi script

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta