fonction de remplacement de html_entity_decode()

fonction de remplacement de html_entity_decode() - PHP - Programmation

Marsh Posté le 25-07-2003 à 09:48:45    

olà !
j'utilise la fonction suivante :

Code :
  1. function unhtmlentities ($string)  {
  2.   $trans_tbl = get_html_translation_table (HTML_ENTITIES);
  3.   $trans_tbl = array_flip ($trans_tbl);
  4.   $ret = strtr ($string, $trans_tbl);
  5.   return preg_replace('/&#(\d+);/me',
  6.      "chr('\\1')",$ret);
  7. }


pour remplacer la fonction html_entity_decode() qui ne fonctionne qu'à partir de PHP 4.3.0
ça fonctionne très bien à un léger petit détail pès, elle ne remplace pas € par ?
Donc si qq1 pouvait modifier cette regexp pour prendre ce paramètre en plus, je lui serais reconnaissant.
 
merci

Reply

Marsh Posté le 25-07-2003 à 09:48:45   

Reply

Marsh Posté le 25-07-2003 à 14:50:47    

Code :
  1. function unhtmlentities ($string)  {
  2.   $trans_tbl = get_html_translation_table(HTML_ENTITIES);
  3.   $trans_tbl = array_flip($trans_tbl);
  4.   $ret = strtr($string, $trans_tbl);
  5.   $ret = preg_replace('/&([a-zA-Z0-9]);/me', '\\1', $ret); // Remplace '€' par 'euro' ainsi que les autres codes HTML ayant le schéma '&....;'
  6.   $ret = preg_replace('/euro/i', '?', $ret); // Remplace 'euro' par ?
  7.   return preg_replace('/&#(\d+);/me', chr('\\1'), $ret);
  8. }


 
Edit 1 : le ? c le signe euro... Ca a l'air de pas fonctionner sur ce forum (ou alors est-ce mon navigateur Opera ?) !
Edit 2 : ça doit être mon nav puisqu'au dessus le signe est bien affiché.


Message édité par Dost67 le 25-07-2003 à 14:53:28
Reply

Sujets relatifs:

Leave a Replay

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