Autor Zpráva
substr
Profil *
Zdravím, mám jeden začiatočnícky problém... v databáze mám uložený reťazec (článok) a potrebujem vypísať prvých dajme tomu 270 znakov... poviete si jednoduché, ved stačí použiť funkciu substr.... ale mám s ňou taký problémik...

Pri použití zápisu:

$perex=substr("$text",0,270);

kde $text = $data["text"]; (výpis z db) sa mi pri niektorých článkoch vytvorí takýto problém s diakritikou:

Lákamí vůněhulás úmyval rohlivý jednovod lek obal aut lesmělý dobývá Zvestupně. Bubený muto slušiv Sudíční úmyvadlou ana lžičkočaj krát škojdi jít lunce. Rojskočár úmyva dopis ačít bubený radložný září jítkem Dobzor obývá Partav�

(Lorem Ipsum som použil samozrejme len na ukážku...)

Kodovanie pre komunikáciu s databázou, dáta v databáze ako aj php súbory sú v kodovaní UTF-8.

Ako mám zabrániť takémuto chybnému zobrazeniu?

Vopred dakujem za vaše odpovede.
Nox
Profil
substr
používáš utf, které některé znaky ukládá na víc jak 1 byte a substr to dělí po bytech, takže když tam na konci zůstane jen půl definice znaku, tak vznikne samozřejmě nesmysl

využij funkce mb_substr ... mb je předpona multibyte, tzn. bere v potaz vícebytové znaky, tato předpona jde najít u řady dalších funkcí,
u některých funkcí je zase v popisu uvedeno "multibyte safe", nebo tak něco
substr
Profil *
Nox
dík za pomoc, pozrel som si tú funkciu... a nakoniec som to dal takto:

$perex=mb_substr("$text", 0, 270, "UTF-8");

a ide to... fakt dík

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: