AlphaBlog

Skrýt reklamu
Tisk z AlphaBlog.wz.cz

PHP - Zkrácení UTF-8 textu

PHP - Zkrácení UTF-8 textu

(16.10.2007 - 17:15)

S přechodem na nové, univerzální kódování webu (UTF-8), jsem narazil i na problém, který jsem dříve neměl. A to ten, že PHP mi špatně operovalo s textovými řetězci. Nakonec jsem ale zjistil, že řešení je jednoduché. Místo klasických funkcí pro operace s textovými řetězci totiž musíte používat funkce, které podporujou multibajtové řetězce. Ty se jmenují stejně, ale před každou z nich je vždy mb_, takže mb_strlen (zjištění délky řetězce). Pro jejich používání je ale nutná další věc: před samotným scriptem definovat kódování pro multibajtové funkce.

Pro zkrácení textu pak použijeme funkci mb_strcut, která má následující parametry: zkracovaný řetězec, počáteční znak (číslo), počet znaků dalších znaků od místa začátku (číslo). Takže celý kód nakonec bude vypadat následovně:

mb_internal_encoding("UTF-8"); // Nastavíme vnitřní kódování
$text = strip_tags($text); // Odstraníme html tagy z proměnné
$text = htmlspecialchars($text); // Zbylé speciální znaky převedeme na html entity
$text = mb_strcut($text,0,100); // Zkrátíme proměnnou text na 100 znaků od začátku

Echo $text; // Vypíšeme text na stránku

Je to sice jednoduché, ale mě docela dlouho vrtalo hlavou, proč mi funkce na zkracování UTF-8 řetězců vracela na konci podivná písmena a tím kazila validitu celé stránky.


<< Zpět
Líbí se ti článek? Linkuj si!

Komentáře

K tomuto článku není žádný komentář.

Přidat komentář

Jméno:
Ochranný kód:
Ochranný kód - opište jej malými písmeny

Web je xHTML 1.0 Strict a CSS validní, optimální pro všechny prohlížeče, blog webu Alpha007.wz.cz, webmaster: Alpha007