Foros del Web » Programando para Internet » PHP »

Problema con acentos en url PHP

Estas en el tema de Problema con acentos en url PHP en el foro de PHP en Foros del Web. Hola, Tengo un problema con url de mi web. uso el charset utf-8: Código PHP: < meta http - equiv = "content-type"  content = "text/html; charset=UTF-8"  />  ...
  #1 (permalink)  
Antiguo 15/10/2010, 08:20
Avatar de Amazighweb  
Fecha de Ingreso: junio-2009
Mensajes: 49
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema con acentos en url PHP

Hola,


Tengo un problema con url de mi web.

uso el charset utf-8:

Código PHP:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
uso esta function:

Código PHP:
function limpiar($url) {
$url htmlentities($urlENT_QUOTES'ISO-8859-1');
$url strtolower($url);
$find = array(" ""&""\r\n""\n""+");
$url str_replace ($find"-"$url);
$find = array("á""é""í""o""ú""ñ");
$repl = array("a""e""i""o""u""n");
$url str_replace ($find$repl$url);
$find = array("/[^a-z0-9\-<>]/""/[\-]+/""/<[^>]*>/");
$repl = array("""-""");
$url preg_replace ($find$repl$url);
return 
$url;

Y en otro archivo pongo esto para llamar a la funcion

Código PHP:
$video['title3'] = limpiar($video_arr['title']);
$video['vidid'] = $video_arr['vidid']; 
y esto lo uso para url rewirting y tengo estos problemas solo con acentos por ejemplo en la ó :

Código PHP:
mipagina.com/vide-atilde-sup3n.html 
y en la á

Código PHP:
mipagina.com/di-atilde-shya.html 
y &

Código PHP:
mipagina.com/taasdsd-ampamp-alienate-nana.html 
gracias.
  #2 (permalink)  
Antiguo 15/10/2010, 08:29
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Problema con acentos en url PHP

Yo lo que hago es crear un campo más en mi tabla en la que guardo el texto de la url sin tildes ni caracteres especiales, de modo que al momento de guardar los datos en la tabla llamo a la función con la que reemplazo todos estos caracteres y los guardo en dicho campo

Código PHP:
function chars_replace($string) {
    
$busqueda = array("Á","É","Í","Ó","Ú","Ñ","á","é","í","ó","ú","ñ"," ");
    
$reemplazo = array("A","E","I","O","U","N","a","e","i","o","u","n","-");
    return(
str_replace($busqueda$reemplazo$string));

Ahora cuando llamo a algún artículo por $_GET, lo hago mediante el campo que tiene los caracteres limpios, espero te sirva la idea, ahí puedes agregarlos todos los caracteres que deses, p.ej. comas, puntos, parentesis, etc.
  #3 (permalink)  
Antiguo 15/10/2010, 08:34
Avatar de Amazighweb  
Fecha de Ingreso: junio-2009
Mensajes: 49
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con acentos en url PHP

Hola,

Si es muy buena idea pero yo ya tengo muchos videos en la base y para añadir esto me va dar un trabajo.

Espero otra ayuda por que es casi lo mismo que uso.

Código PHP:
$find = array("á""é""í""o""ú""ñ");
$repl = array("a""e""i""o""u""n"); 
saludos y gracias.

Etiquetas: acentos, url
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 18:38.