Autor
|
Tema: limpiar un str de signos raros (Leído 8,793 veces)
|
Kase
Desconectado
Mensajes: 1.288
programa bonito ¬¬
|
necesito limpiar un string de cualquier signo que no sea letra o numero
por ejemplo $str = '¿cual es la raiz de 42?'; a $str = 'cual es la raiz de 42';
alguna idea de como hacerlo de la forma mas eficiente posible?
|
|
|
En línea
|
|
|
|
Feedeex
Desconectado
Mensajes: 173
|
function comprobar_cadena($str) { $caracteres_permitidos = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; for ($i = 0; $i < strlen($str); $i++) { if (strpos($caracteres_permitidos, substr($str,$i,1)) == FALSE) { return false; } else { return true; } } } Lo llamás así: $variable = comprobar_cadena($str); if ($variable == TRUE) { echo "Existen signos no permitidos"; } else { echo "Todo ok"; }
|
|
|
En línea
|
|
|
|
Kase
Desconectado
Mensajes: 1.288
programa bonito ¬¬
|
Gracias!! estaba buscando algo mas estilo python, pero php se queda corto en ese aspecto =<
y esque demaciadas comparaciones causa mas tiempo de ejecuccion y de procesamiento.
almenos es un codigo limpio... ^^ muchas gracias
|
|
|
En línea
|
|
|
|
Kasi
Desconectado
Mensajes: 76
|
Prueba mejor con una expresión regular y sustituye los resultados por ''. Con esta puede que te sirva, haz pruebas y ya nos dirás. $reg = '/\W\s/g'; $str = 'Lo que tengas ? que * buscar'; $rep = '';
La expresión es muy simple y se puede mejorar, pero bueno para un primer apaño quizá te sirva. Te dejo esta página, que a lo mejor te sirve de ayuda para creartelas. http://gskinner.com/RegExr/Un saludo
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
function alfanumeric($string){ return $string; }
Recibe una cadena y devuelve la cadena sólo con símbolos alfanuméricos, nada de caracteres especiales. Su uso. $str = alfanumeric("¿cual es la raiz de 42?"); echo $str;
Devuelve: cual es la raiz de 42
|
|
|
En línea
|
|
|
|
Shell Root
|
@Spider-Net, creo que falta agregarle un \s para los espacios, no? Mejor usar preg_replace, ya que ereg_replace ésta obsoleta.
|
|
« Última modificación: 12 Abril 2011, 22:14 pm por Shell Root »
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
/(?i)(?:[^\w]*)(?-i)/
Puedes usar este patrón junto a preg_replace(). Que en vez de eliminar caracteres especifico, elimino cualquier carácter que no sea alfanumérico . Ejemplo: <?php ?>
Salida: Saludos.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
Yo hice esta función que crea un alias de un texto. Lo uso para cuando voy a ingresar un dato a la base de datos (un post de un blog por ejemplo, guardo el nombre Un post de programación!! [PHP][/i] y el alias un-post-de-programacion-php). Te dejo la función y editala a tu gusto, pero practicamente utiliza lo que ya te dijeron: Esta es la función para que pegues en el archivo function txtToAlias($flotaTitle='',$flotaLength=false){ preg_match_all('/[a-z0-9\-]+/',strtr(preg_replace('/\s+/','-',trim(strtolower($flotaTitle))), "àáâãäåèéêëìíîïòóôõöùúûüñ", "aaaaaaeeeeiiiiooooouuuun"),$return); return ($flotaLength)?substr(implode($return[0]),0,$flotaLength):implode($return[0]); } Esta está resaltada pero hay problemas con àáâãäåèéêëìíîïòóôõöùúûüñfunction txtToAlias($flotaTitle='',$flotaLength=false){ }
|
|
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
pues IMHO casi la mejor solucion es la de kasi agregando \d para los numeros pero negativo eh ¬¬ $reg = '/[^\w\d\s]/i'; $buffer = 'asdf8a7s6d5f4asdf#456789(&335GG/X>%X57';
devuelve: asdf8a7s6d5f4asdf456789335GGXX57 agregale espacios y sigue funcionando
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
dimitrix
|
Como narices esto: puede referirse a letras y números :-|
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Diez signos que indican que tu ordenador está infectado por un virus
Noticias
|
wolfbcn
|
0
|
1,964
|
5 Agosto 2010, 13:47 pm
por wolfbcn
|
|
|
Programa que sepa los signos que hay que poner en una igualdad
« 1 2 »
Programación C/C++
|
javirk
|
18
|
7,186
|
10 Febrero 2012, 04:33 am
por do-while
|
|
|
problema leyes de los signos
Programación Visual Basic
|
asdexiva
|
1
|
1,943
|
27 Febrero 2014, 02:17 am
por raul338
|
|
|
MotionSavvy, traductor de lenguaje de signos a voz
Noticias
|
wolfbcn
|
1
|
1,867
|
19 Mayo 2014, 14:16 pm
por Gh057
|
|
|
sustituir signos con Textman en batch
Scripting
|
**Aincrad**
|
2
|
2,732
|
7 Febrero 2018, 02:28 am
por **Aincrad**
|
|