Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Čeština v truetypových fontech
2. března 1999, 00.00 | Tip jak donutit funkci ImageTTFtext v PHP aby psala hezky česky. Ukázka..
Přiznávám, poslední dobou dostávám více dotazů a dopisů než sám stačím psát článků. Stejně je tomu i u následujícího tipu.
Jde o problém s tiskem českých znaků pomocí funkce ImageTTFtext, která tiskne text do obrázku pomocí truetypových fontů. (specifikováno do windows, ale to by nemělo mít vliv)
Použitím klasického textu totiž získáte pouze nepoužitelné klikyháky:
Proč je tomu tak? Fonty jsou totiž v kódování UTF-8 (Unicode) a proto je nutné text se znaky většími než 255 převést (vstup brán z cp1250)
Kódová tabulka českých znaků UTF-8 je uvedena zde (převzato z balíku sherlock1.1pre0), samotný tisk se pak provede pomocí číselného kódu znaku (&#cislo;).
Získáme tím:
Psát tyto znaky pokaždě jistě není nic přijemného, proto jsem navrhl následující fci, která převede string v cp1250 do UTF-8.
(plus ukázka použití).
$s="Příliš žluťoučký kůň úpěl ďábelské ódy";
/******* F C E **********/
function toUTF8($s)
{
$czUTF8=array("á"=>225,"č"=>269,"ď"=>271,"é"=>233,"ě"=>283,"í"=>237,
"ĺ"=>314,"ľ"=>318,"ň"=>328,"ó"=>243,"ř"=>345,"š"=>353,"ť"=>357,
"ú"=>250,"ů"=>367,"ý"=>253,"ž"=>382,"Á"=>193,"Č"=>268,"Ď"=>270,
"É"=>201,"Ě"=>282,"Í"=>205,"Ĺ"=>313,"Ľ"=>317,"Ň"=>327,"Ó"=>211,
"Ř"=>344,"Š"=>352,"Ť"=>356,"Ú"=>218,"Ů"=>366,"Ý"=>221,"Ž"=>381);
for($i=0; $i
Slovo na závěr: tento způsob mě samotnému připadá trochu krkolomný, je mi divné, že php nemá žádnou nativní fci. Pokud znáte jinou metodu,
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007