Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP - jak zpracovat znaky

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>+ě&scaron;čřž&yacute;&aacute;&iacute;&eacute;</ p> <p>$ &trade; &reg;</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:

+ě&scaron;čř ž&yacute;&aacute;&iacute;&eacute;ů

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 ?

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny