
03/03/2011, 14:33
|
| | Fecha de Ingreso: septiembre-2010 Ubicación: Puebla
Mensajes: 14
Antigüedad: 14 años, 5 meses Puntos: 0 | |
Acentos y caracteres especiales Saludos a todos,
Nuevamente yo con una duda, resulta que tengo la siguiente función que se encarga de eliminar los acentos:
<?
function limpiar_caracteres_especiales($s)
{
$s = ereg_replace("[áàâãª]","a",$s);
$s = ereg_replace("[ÁÀÂÃ]","A",$s);
$s = ereg_replace("[éèê]","e",$s);
$s = ereg_replace("[ÉÈÊ]","E",$s);
$s = ereg_replace("[íìî]","i",$s);
$s = ereg_replace("[ÍÌÎ]","I",$s);
$s = ereg_replace("[óòôõº]","o",$s);
$s = ereg_replace("[ÓÒÔÕ]","O",$s);
$s = ereg_replace("[úùû]","u",$s);
$s = ereg_replace("[ÚÙÛ]","U",$s);
$s = str_replace("ñ","n",$s);
$s = str_replace("Ñ","N",$s);
return $s;
}
echo limpiar_caracteres_especiales('Niño Bónító');
?>
La función si me elimina los acentos pero me da resultados algo extraños, la prueba anterior me da como resultado: Nia±o Baonaitao
Y si pruebo con la cadena 'á é í ó ú' el resultado es 'aa ae ai ao ao' la 'a' la repite cada vez que quita un acento, la 'ú' ni la vio y si la vio la reemplazo por una 'o'
¿Alguien sabe porqué y qué hacer para resolverlo?
Nota: el asunto es simple, quiero quitar acentos y caracteres especiales a las cadenas de texto porque contienen direcciones que serán geocodificadas por medio del google geocoder para obtener la latitud y longitud. Aparentemente el geocodificador no puede leer acentos ni caracteres especiales y arroja error cada vez que alguien ingresa algo como "Av. Benito Júarez Nº 1230 Col. Valparaíso, Zacatlán" o "Av. Benito Juárez #1230 Col. Valparaíso, Zacatlán" es por eso que quiero convertirlo a "Av Benito Juarez 1230 Col Valparaiso Zacatlan" que no me genera problemas al geocodificarlo.
Esto genera dos preguntas:
1. ¿Cómo puedo mejorar el código anterior para que haga lo que quiero?
o bien,
2. ¿Alguien sabe como geocodificar sin que los acentos o caracteres especiales afecten el proceso?
Naturalmente con responder sólo una de las dos preguntas bastará de modo que espero su ayuda. |