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 :
- function unhtmlentities ($string)
- {
- // Remplace les entités numériques
- $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1" ))', $string);
- $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1" )', $string);
- // Remplace les entités litérales
- $trans_tbl = get_html_translation_table (HTML_ENTITIES);
- $trans_tbl = array_flip ($trans_tbl);
- return strtr ($string, $trans_tbl);
-
- }
|
En soit ça fonctionne pas trop mal, mais à la place de "–" j'ai un carré :
peut etre que vous avez une meilleure solution ?
Merci d'avance...
Freed