Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2012, 09:25
manuel__7
 
Fecha de Ingreso: abril-2012
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Problema con limpieza de cadena...

Hola tengo una página php donde recibo una variable tipo:

www.midominio.com/index.php?title=XáX+XñX

Como verán la variable title se la recibe con un sin numero de caracteres (+) puesto que al pasar la variable los espacios se vuelven ese signo, también se pasa con tildes y ñ. El problema es el siguiente:

Al recibir la variable title vía enviada via GET intento limpiarla para luego volver a enviarla algo así:

index.php?title=xax+xnx

Lo cual más una rewriterule en htaccess me lo dejaría así:

title-xax-xnx.html


Para limpiar la cadena utilizo una función de este tipo:

Código PHP:

$str 
$_GET['title'];

function 
limpiarURL($str) {
    
//Quitar tildes y ñ
    
$tildes = array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ');
    
$vocales = array('a','e','i','o','u','n','A','E','I','O','U','N');
    
$str str_replace($tildes,$vocales,$str);
 
    
//Quitar símbolos
    
$simbolos = array("=","¿","?","¡","!","'","%","$","€","(",")","[","]","{","}","*","+","·",".","< ",">");
    
$i 0;
    while(
$simbolos[$i]){
    
$str str_replace($simbolos[$i], ""$str);
    
$i++;
    }
 
    
//Quitar espacios
    
$str str_replace(" ","_",$str);
 
    
//Pasar a minúsculas
    
$str strtolower($str);
 
    return 
$str;
}

echo  
limpiarURL($str); 

Entonces teniendo la variable limpia volvería a hacer una redirección para que se pase ya limpia...

Mi problema es que la función limpia o reemplaza todos los caracteres especiales menos las letras tildadas y las ñ...

PRegunta: ¿Existe una forma para reemplazar caracteres espaciales directamente desde htaccess?

Si no existe una rewrite rule para limpiar caracteres especiales necesito saber, ¿Por qué la función no está limpiando las tildes y ñ?; ¿Estará mal aplicada?

Aclaro que estoy en wordpress.org...

Saludos...