la meilleure façon de décoder les caractères html

la meilleure façon de décoder les caractères html - PHP - Programmation

Marsh Posté le 28-04-2008 à 11:57:12    

bonjour à tous,
 
J'ai une question concernant le formatage des données provenant d'une BDD.
 
Lors de l'import des données, certains champs possedent des caractères HTML encodés, un coup avec des truc genre : "–" , d'autres fois avec des é ...il me semble bien qu'il ne s'agit pas du même type d'encodage des caractères.
 
Actuellement j'ai besoin d'extraire ces données pour en faire des fichiers CSV, le problème, c'est que dans "–" ou dans "é" ya un point-virgule, le point-virgule étant le caractère séparateur des champs, les données sortent donc completement erronées... D'autant plus que c'est illisible.
 
la solutions que j'avais trouvé :
 
 

Code :
  1. function unhtmlentities ($string)
  2. {
  3.    // Remplace les entités numériques
  4.    $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1" ))', $string);
  5.    $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1" )', $string);
  6.    // Remplace les entités litérales
  7.    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
  8.    $trans_tbl = array_flip ($trans_tbl);
  9.    return strtr ($string, $trans_tbl);
  10.  
  11.   }


 
En soit ça fonctionne pas trop mal, mais à la place de "–"  j'ai un carré :   :heink:  
 
peut etre que vous avez une meilleure solution ?
 
Merci d'avance...
 
Freed

Reply

Marsh Posté le 28-04-2008 à 11:57:12   

Reply

Marsh Posté le 28-04-2008 à 12:08:40    

html_entity_decode() : http://fr.php.net/html_entity_decode

Reply

Marsh Posté le 28-04-2008 à 12:10:27    

deja essayé, mais ça ne fonctionne pas visiblement avec les encodages hexadecimaux

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed