Foros del Web » Programando para Internet » PHP »

Limpiar cadena

Estas en el tema de Limpiar cadena en el foro de PHP en Foros del Web. En la red he conseguido el siguiente ejemplo, para limpiar caracteres al inicio y la final de una cadena. $texto = "\t\tEn un lugar de ...
  #1 (permalink)  
Antiguo 16/09/2009, 00:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Limpiar cadena

En la red he conseguido el siguiente ejemplo, para limpiar caracteres al inicio y la final de una cadena.

$texto = "\t\tEn un lugar de la Mancha :) ... ";

echo trim($texto); // "En un lugar de la Mancha :) ..."
echo trim($texto, " \t."); // "En un lugar de la Mancha :)"

Con esto puedo quitar los espacio en blanco y algunos caracteres que sean especificados.

Pero cómo sería si quiero obtener el mismo resultado sin tener que listar cada uno de los caracteres a eliminar. Por ejemplo, cómo haría para eliminar todo lo que no sea número o letra al principio y al final de la cadena, en este ejemplo:

$texto = "\t\t3456¡¿+\&En un 45 * lugar de la Mancha ><34:) ... ";

El resultado deberia ser:
$resultado = "En un 45 * lugar de la Mancha";

Gracias de antemano.
  #2 (permalink)  
Antiguo 16/09/2009, 01:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Limpiar cadena

Puedes usar expresiones regulares para esto. Te sugiero leer este aporte.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/09/2009, 03:40
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Limpiar cadena

La función trim solo sirve para eliminar al principio y al final de la cadena los espacios en blancos, tabulaciones, saltos de linea y retornos de carro. Si quieres eliminar cualquier otra cosa que no sea espacio en blanco debes usar expresiones regulares, como han comentando anteriormente. El problema de las expresione regulares es que hay que especifica más como son las cadenas. Por ejemplo, como las obitienes, por que caracteres puede empezar las cadenas, por cuales puede terminar, que caracteres puede llevar. Si no los explica más quizas te podamos buscar una expresion regular acorde a lo que quieres.
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #4 (permalink)  
Antiguo 16/09/2009, 11:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Limpiar cadena

Las expresiones regulares me resultan algo complejas. Pero estoy leyendo sobre ellas.

Básicamente lo que quiero lograr es que, utilizando, por ejemplo, ereg_replace, reemplazar todos los caracteres que no sean letras, al principio y al final de la cadena.

Ejemplo:

$cadena = "\t\t3456¡¿+\&En un 45 * lugar de la Mancha ><34:) ... ";

Al usar ereg_remplace, el resultado que quisiera obtener es el siguiente:

$cadena = "En un 45 * lugar de la Mancha";

Es decir, eliminar todo lo que no sea letra, al principio y al final de la cadena.
  #5 (permalink)  
Antiguo 16/09/2009, 11:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Limpiar cadena

No uses los ereg, usa los preg. Todos los ereg son obsoletos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:18.