Foros del Web » Programando para Internet » PHP »

Como reemplazar tildes

Estas en el tema de Como reemplazar tildes en el foro de PHP en Foros del Web. hola. Tengo un problema con un sitio que estoy creando, el sitio es basicamente de noticias, para cada nueva noticia utilizo un link como este: ...
  #1 (permalink)  
Antiguo 07/02/2011, 20:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 6 meses
Puntos: 10
Como reemplazar tildes

hola.

Tengo un problema con un sitio que estoy creando, el sitio es basicamente de noticias, para cada nueva noticia utilizo un link como este:

www.dominio.com/seccion/título-de-la-noticia-id

El problema es cuando el titulo de alguna noticia lleva tilde o ñ, como en el ejemplo, entoncs mi url queda asi:

http://www.dominio.com/seccion/t%f20...-la-noticia-id

el cual es funcional pero de ninuna forma lo mejor para posicionamiento en google. Lo que intento hacer es cambiar esa " í " por una " i " normal solo para los links pero que al mostrarse el titulo de la noticia en la pagina se muestren correctamente todas las tildes.

Como puedo hacer esto? puedo hacer una funcio con un str_replace() para que cambie las letras tildadas por letras que no lo estan, pero entonces como busco la noticia en la base de datos si el titulo ya no es exactamente el mismo?

-Editado-
Googleando encontre esta funcion, pero no entiendo cual es la funcion del preg_replace() ahi:

Cita:
function cleanFileName($file_name){
$find = array( "á", "é", "í", "ó", "ú"," ", "ñ" );
$replace = array( "a", "e", "i", "o", "u","_", "n" );
return str_ireplace($find, $replace, preg_replace('/[^\w ]/', '', $file_name));
}
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador

Última edición por severicks; 07/02/2011 a las 21:02
  #2 (permalink)  
Antiguo 07/02/2011, 21:19
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años
Puntos: 52
Respuesta: Como reemplazar tildes

Bueno prueba esta funcion, yo la utilizo para lo que tu necesitas

Código PHP:
Ver original
  1. <?php
  2.     function cleartext($cadena){
  3.         $tofind = "AÁÂAÄAaáâaäaOÓÔOÖOoóôoöoEÉEËeéeëÇçIÍÎIiíîiUÚUÜuúuüyNn. @";
  4.         $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-_a";
  5.         return strtolower((strtr($cadena,$tofind,$replac)));
  6.     }
  7. ?>
  #3 (permalink)  
Antiguo 07/02/2011, 23:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Como reemplazar tildes

Cita:
Iniciado por anacona16 Ver Mensaje
Bueno prueba esta funcion, yo la utilizo para lo que tu necesitas

Código PHP:
Ver original
  1. <?php
  2.     function cleartext($cadena){
  3.         $tofind = "AÁÂAÄAaáâaäaOÓÔOÖOoóôoöoEÉEËeéeëÇçIÍÎIiíîiUÚUÜuúuüyNn. @";
  4.         $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-_a";
  5.         return strtolower((strtr($cadena,$tofind,$replac)));
  6.     }
  7. ?>
Ok, con esa funcion cambio todos esos caracteres especiales por las letras normales, pero un tengo el problema que no quiero cambiarlos permanentemente, es decir, q solo cambien los links, pero que que en la base de datos las tildes permanescan igual, el problema es al intentar buscar una noticia me dara error por que el titulo no es igual que la variable que obtendria por el link
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #4 (permalink)  
Antiguo 08/02/2011, 00:05
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años
Puntos: 52
Respuesta: Como reemplazar tildes

Pues lo mas sano seria, en mi opinion guardar en dos campos diferentes un titulo normal (con tildes y el otro ya sin tildes), asi podrias buscar con tildes y mostrar sin tildes.
  #5 (permalink)  
Antiguo 08/02/2011, 00:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Como reemplazar tildes

hmmm interesante, creo que eso es lo que hare, tenia pensado primero buscar primero en la bd la noticia por su id y despues de leerla aplicarle la misma funcion para cambiar las tildes y ahi comprobar si cooncordaban con la del link, aun que es muy ineficiente es la unica forma que se me habia ocurrido
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #6 (permalink)  
Antiguo 08/02/2011, 02:54
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 8 meses
Puntos: 22
Respuesta: Como reemplazar tildes

Yo lo que hago en estos caso es usar un campo "url" en la base de datos donde guardo la url "limpia".
Además, así puedes personalizar la url de la noticia, en caso de ser necesario.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla

Etiquetas: reemplazar, tildes
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 11:47.