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ě:
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.
K tomuto článku není žádný komentář.