Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/02/2010, 20:49
Avatar de zerpico_01
zerpico_01
 
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 10 meses
Puntos: 13
Respuesta: duda con html_entity_decode!!! help!!

pues efectivamente la solucion seria cambiar a los caracteres eran UTF-8, mi web pero no me interesa eso ya que me traeria otros problemas con los cuales no quiero lidear.....

segun un manual que he leido la solucion seria esta :
(probado y funciona)

Código:
   1. Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en
      utf_unicode_ci (más tarde en Operations > Collation de phpMyAdmin se puede cambiar)
   2. Pon en el <head> de todos los archivos HTML:

      <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

   3. Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:

      header("Content-Type: text/html;charset=utf-8");

   4. Al crear la conexión de PHP con MySQL, envía esta consulta justo tras la conexión:

      mysql_query("SET NAMES 'utf8'");

   5. Quita todos los htmlentities();
   6. Quita el DefaultCharset del Apache o modifícalo
pero yo prefiero no tener acentos a que tener un hueco en el traste

por quitar htmlentities seria suicio asegurado.....

asi que mi solucion es seguir usando ISO-8859-1

y asi utilizar mis propios filtros...

para esto lo he solucionado haciendome una pequeña funcion de este modo:

Código PHP:
<?php 
function malditosacentosdemerdas($globalvar)
    {
        
$globalvar htmlentities($globalvarENT_QUOTES'UTF-8');
        
$globalvar strtolower($globalvar);
        
$acentomerda = array ('/[\., ]+/' => '-','/&agrave;/' => 'a','/&egrave;/' => 'e',
            
'/&igrave;/' => 'i','/&ograve;/' => 'o','/&ugrave;/' => 'u','/&aacute;/' => 'a',
            
'/&eacute;/' => 'e','/&iacute;/' => 'i','/&oacute;/' => 'o','/&uacute;/' => 'u',
            
'/&acirc;/' => 'a','/&ecirc;/' => 'e'
            
etc etc et....agrgar todos los caracteres 
            a comvertir 
:-)    
 
        );
 
        
$globalvar preg_replace(array_keys($acentomerda ),array_values($acentomerda ),$globalvar);
        return 
$globalvar;
    }
?>
probado y funcionando.... si quieren usarla cambien $globalvar por la variable a la que deseen cambiar los caracteres !!

gracias por sus respuestas!!



PD: seguramente hay una forma mas sencilla de hacerla pero todo lo que encontre en la red no funciona y la mayor parte son copy paste con los mismos errores... como me canse de lidear con los acentos bautise mi funcion con ese nombre y luego de eso como arte de magia funciona!!!