Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2009, 04:37
Vendetta
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 9 meses
Puntos: 5
Problema quitando acentos

Buenas...

Llevo casi toda la mañana con esta tonteria que en teoria es sencillo de hacer...Primero intente hacer una yo

Código php:
Ver original
  1. function elimina_acentos($cadena) {
  2.     $acentos = array("À", "Á", "Â", "Ã", "Ä", "Å", "à", "á", "â", "ã", "ä", "å", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "ò", "ó", "ô", "õ", "ö", "ø", "È", "É", "Ê", "Ë", "è", "é", "ê", "ë", "Ç", "ç", "Ì", "Í", "Î", "Ï", "ì", "í", "î", "ï", "Ù", "Ú", "Û", "Ü", "ù", "ú", "û", "ü", "ÿ", "Ñ", "ñ");
  3.     $quitar = array("A", "A", "A", "A", "A", "A", "a", "a", "a", "a", "a", "a", "O", "O", "O", "O", "O", "O", "o", "o", "o", "o", "o", "o", "E", "E", "E", "E", "e", "e", "e", "e", "C", "c", "I", "I", "I", "I", "i", "i", "i", "i", "U", "U", "U", "U", "u", "u", "u", "u", "y", "N", "n");
  4.     return(strtr($cadena, $acentos, $quitar));
  5. }

Pero no funcionaba, dejaba la palabra tal cual con el acento asi que supuse que lo habia hecho mal y busque alguna funcion hecha por internet llegando a esta:

Código php:
Ver original
  1. function quitarAcentos($text)
  2.     {
  3.         $text = htmlentities($text, ENT_QUOTES, 'UTF-8');
  4.         $text = strtolower($text);
  5.         $patron = array (
  6.             // Espacios, puntos y comas por guion
  7.             '/[\., ]+/' => '-',
  8.            
  9.             // Vocales
  10.             '/à/' => 'a',
  11.             '/è/' => 'e',
  12.             '/ì/' => 'i',
  13.             '/ò/' => 'o',
  14.             '/ù/' => 'u',
  15.            
  16.             '/á/' => 'a',
  17.             '/é/' => 'e',
  18.             '/í/' => 'i',
  19.             '/ó/' => 'o',
  20.             '/ú/' => 'u',
  21.            
  22.             '/â/' => 'a',
  23.             '/ê/' => 'e',
  24.             '/î/' => 'i',
  25.             '/ô/' => 'o',
  26.             '/û/' => 'u',
  27.            
  28.             '/ã/' => 'a',
  29.             '/&etilde;/' => 'e',
  30.             '/ĩ/' => 'i',
  31.             '/õ/' => 'o',
  32.             '/ũ/' => 'u',
  33.            
  34.             '/ä/' => 'a',
  35.             '/ë/' => 'e',
  36.             '/ï/' => 'i',
  37.             '/ö/' => 'o',
  38.             '/ü/' => 'u',
  39.            
  40.             '/ä/' => 'a',
  41.             '/ë/' => 'e',
  42.             '/ï/' => 'i',
  43.             '/ö/' => 'o',
  44.             '/ü/' => 'u',
  45.            
  46.             // Otras letras y caracteres especiales
  47.             '/å/' => 'a',
  48.             '/ñ/' => 'n',
  49.  
  50.             // Agregar aqui mas caracteres si es necesario
  51.  
  52.         );
  53.        
  54.         $text = preg_replace(array_keys($patron),array_values($patron),$text);
  55.         return $text;
  56.     }

Aqui pasaba algo bastante raro y es que, en vez de sustituir la vocal con acento por una sin acento, ponia "anónimo" asi que nada, despues de probar 1 o 2 cosas, me pongo a buscar otro:

Código php:
Ver original
  1. function convert_to_alias($string) {
  2.     utf8_encode($string);
  3.     $a = array("á","é","í","oacute","ú","à","è","ì","ò","ù","ä","ë","ï","ö","ü","â","ê","î","ô","û","ñ","ç"," ", "/", "[", "\\", ".", ",", "]", "+", "/");
  4.     $b = array("a","e","i","o","u","a","e","i","o","u","a","e","i","o","u","a","e","i","o","u","n","c","-", "-", "-", "-", "-", "-", "-", "-", "-");
  5.     $string = str_replace($a, $b, $string);
  6.     $string = strtolower($string);
  7.     $string = ereg_replace("[^A-Za-z0-9-]", "", $string);
  8.     return $string;
  9. }

Y en este algo parecido a lo de arriba, en vez de poner "anonimo" pone "anoacutenimo" y ya estoy totalmente perdido, 3 cosas distintas que no funcionan, imagino que me falta poner algo o que, por que ya no se que hacer.

Creo que me falta lo de utf-8 o alguna cosa asi? En fin, si alguien puede ayudarme...

EDIT: Por cierto, necesito quitar los acentos porque estoy creando directorios desde PHP a un FTP y los acentos, obviamente sobran para que funcionen bien las URL

Última edición por Vendetta; 01/10/2009 a las 05:01