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...