Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Odstránenie diakritiky v PHP pomocou iconv()

Odstránenie diakritiky z reťazcov, pri použítí kódovania UTF-8, ktoré by dnes malo byť už takmer štandardom je relatívne jednoduché a dá sa využiť natívna PHP funkcia iconv(). Tá funguje tak, že prevedie reťazec z jedného kódovania na iné – v prípade, že chceme odstrániť diakritiku, meníme kódovanie z UTF-8 na ASCII.

<?
$text = iconv('UTF-8', 'ASCII//TRANSLIT', $text);
?>

Táto funkcia funguje väčšinou spoľahlivo, ale môže sa stať, že na niektorom webhostingu funguje korektne, na inom je však problém v tom, že niektoré diakritické znaky nahrádza otáznikmi. Túto chybu spôsobouje použitie knižnice glibc namiesto správnejšej libiconv.
Keďže dovolať sa nainštalovania inej knižnice, je na väčšine zdieľaných webhostingoch takmer nemožné, je dobré poznať riešenie, ktoré donúti funkciu iconv() fungovať tak ako má, aj keď je použitá knižnica glibc.
Kľúčom je použitie funkcie setlocale ešte pred zavolaním iconv, ktorá zabezpečí jej správne interpretovanie a odstráni „bug“ s otáznikmi.

<?
setlocale(LC_CTYPE, "sk_SK.utf-8");
$text = iconv('UTF-8', 'ASCII//TRANSLIT', $text);
?>

Tomáš Mašek

Naspäť naspäť Pridať komentár k článku prispieť do diskusie [4]

Vyhľadávanie

v názvoch článkov v textoch článkov

Pridať komentár

Koľko je na ruke prstov?

RSS