Autor | Zpráva | ||
---|---|---|---|
substr Profil * |
#1 · Zasláno: 2. 5. 2009, 10:00:13
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 |
#2 · Zasláno: 2. 5. 2009, 11:26:46
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 * |
#3 · Zasláno: 2. 5. 2009, 14:44:18
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 |
||
Časová prodleva: 15 let
|
0