Autor Zpráva
aaa
Profil
mám následující problém:

potřebuju na stránkách zkracovat novinky na určitý počet znaků. dejme tomu že na sto. tudíž použiju substr($text, 0, 100); u lorem ipsum to zkrátí na 100 znaků a všechno je ok. u českých znaků to zkrátí na snad víc jak poloviční počet znaků...

---------------------------

u lipsum je délka na 0, 100 následující:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam hendrerit sollicitudin odio. Mor...

u českého textu na 0, 100 to vypadá takhle:

Právě dokončujeme práce na zpěvech, dohráváme poslední dva...

---------------------------

Což je očividně kratší a popravdě si s tím nevím rady...
tiso
Profil
aaa - použi funkciu mb_substr()
Joker
Profil
aaa
Zřejmě to je UTF a substr má problém s vícebajtovými znaky (respektive počítá řetězec na bajty, tj. jeden český znak jako dva znaky)
Zkuste
mb_substr
aaa
Profil
no, mb_substr jsem zkusil. teď nevim jestli dělám chybu, když to napíšu mb_substr($text, 0, 100) nebo ještě mb_substr($text, 0, 100, 'utf-8'). výsledek je pořád stejný. přitom kodování mysql, výpisu a dokumentu jsou urf-8 . tak asi někde dělám chybu...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: