Čeština v truetypových fontech - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

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:

takhle ne..


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:

spravne


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,

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: