Ano na to jsem přišel a funguje to... ale jenom částečně. konkrétně mám tento problém:
Řekněme tento řetězec:
+ěščřžýáíé
$ ™ ®
A ten se mi potvora převede po průchodu tou fcí na toto(jo to <p> neřeš):
<p>+ěščřžýáíé</ p> <p>$ ™ ®</p>
A po aplikování funkce:
function unhtmlentities($string)
{
// replace numeric entities
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
// replace literal entities
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
Vyleze:
+Ä›šÄŤĹ™Ĺľýáíé
$ ™ ®
...což znamená, že pro unkodování speciálních znaků jako $ ™ ® je to OK, ale s češtinou to má problém.
Nebyla by rada nebo nápad ?
//EDIT
AHÁÁÁ !
To mrcha. Ono to totiž neprovadí konverzi stejně.
Co tím myslím ? Ten text generuje FCKEditor a ta mrcha se tváří následně:
stisknutím kláves následujících:
+ěščřžýáíéů
vyleze:
+ěščř žýáíéů
Což znamená, že ten editor některé znaky konvertuje, ale některé ne....
Co to znamená si ještě musím promyslet...
Jo takže znamená to, že ta funkce přebírá některé znaky a konvertuje, které by měnit neměla.
Takže například písmeno č konvertuje na : ÄŤ
Jde to nějak obejít ?