Foros del Web » Programando para Internet » PHP »

Quitar determinados caracteres de una cadena (url)

Estas en el tema de Quitar determinados caracteres de una cadena (url) en el foro de PHP en Foros del Web. Quizás esto ya se haya resuelto antes, pero honestamente no lo encontré. Sé que es posible, porque lo veo en varias webs; pero no le ...
  #1 (permalink)  
Antiguo 14/04/2006, 21:08
Avatar de Kriminal  
Fecha de Ingreso: julio-2004
Ubicación: Buenos Aires
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Quitar determinados caracteres de una cadena (url)

Quizás esto ya se haya resuelto antes, pero honestamente no lo encontré.
Sé que es posible, porque lo veo en varias webs; pero no le encuentro la vuelta para hacerlo yo.

El tema es que quiero parsear una url, para usarla con mod rewrite. Especificamente, dado el titulo de un tema en un foro, que se "traduzca" ese titulo en la url y que no quede como viewtopic=24 (por ejemplo)

Llegué hasta reemplazar los caracteres acentuados por sus correspondientes sin acentuar; pero en cuanto a los signos de interrogacion, admiracion, comas y demás lo unico que logro es traducirlos por otro caracter.

La funcion que uso es la siguiente:

Código PHP:
$url strtr($url,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ/¿?¡!','AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-----'); 
Lo que yo quiero es eliminar esos caracteres y que no quede nada en su lugar, y no logro dar con la funcion en php que lo haga.

Redundando:
Dado el titulo de tema: Este es mi primer post ¿alguien me contesta?
Obtengo: este-es-mi-primer-post--alguien-me-contesta-.html
Y lo que quiero obtener es: este-es-mi-primer-post-alguien-me-contesta.html

Ya probe usar strtr ($url, '¿', '') y no pasa nada (o sea, reemplazar por un espacio vacio)

Alguna idea? Muchisimas gracias desde ya!
__________________
No sabiendo que era imposible, fue y lo hizo.
kriminal the vampire
  #2 (permalink)  
Antiguo 15/04/2006, 00:31
Avatar de braulito  
Fecha de Ingreso: abril-2004
Ubicación: Cusco - Perú
Mensajes: 597
Antigüedad: 20 años
Puntos: 8
Puedes utilizar esta librería, hace exáctamente lo que quieres, tiene varias funciones para el manejo de cadenas.

http://test.buayacorp.com/formatting-functions.zip

Para usarlo sólo es:
Código:
sanitize_title_with_dashes($variable);
__________________
Braulio Soncco
braulio at buayacorp dot com
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 15/04/2006, 03:07
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Yo uso para lo mismo una función que me hice y hasta ahora no he tenido problemas.

En base a ella quizá puedas/quieras construir una más potente para que se adapte a tus necesidades.

Funciona así: Tú le das una cadena y te la regresa "limpia".

Código PHP:
//
function make_url($cadena)
  {
    
$cadenalimpia1 strtolower(strtr($cadena"áéíóúñÁÉÍÓÚÑ ""aeiounaeioun-"));
    
$cadenalimpia2 "";
    
    for(
$i=0;$i<strlen($cadenalimpia1);$i++)
        if(
ereg("[a-z0-9-]",$cadenalimpia1[$i])) $cadenalimpia2.=$cadenalimpia1[$i];
        
    return 
$cadenalimpia2;
  }
//end function 
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 15/04/2006, 08:48
Avatar de Kriminal  
Fecha de Ingreso: julio-2004
Ubicación: Buenos Aires
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Muchisimas gracias a ambos !
Por ahora me puse a usar la de braulito, porque esa libreria tiene muchisimas funciones que me sirven. Realmente está impecable. La unica duda que tengo, ya que no soy muy versado en PHP, es que si por cada rewrite que tiene que hacer debe llamar a todas esas funciones, si no restara algo de performance.
Pero no desmerezco tu aporte, uamistad, y te agradezco mucho. De hecho, la voy a estudiar con detenimiento a ver si me sirve también.

Muchas gracias de nuevo!

Saludos,
__________________
No sabiendo que era imposible, fue y lo hizo.
kriminal the vampire
  #5 (permalink)  
Antiguo 26/09/2008, 02:34
 
Fecha de Ingreso: junio-2005
Ubicación: Mexico
Mensajes: 21
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Quitar determinados caracteres de una cadena (url)

Hola acabo de usar tu funcion mi estimado uamistad para un sistema de gis que ando elavorando en mexico y me ha resultado super util y creo que la voy a mejorar como bien dices y publicar el codigo para lo que haga falta gracias por compartir el conocimiento :)
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 12:35.