Autor | Zpráva | ||
---|---|---|---|
kachnak Profil |
zdravím, mám menší problém s kódovaním a zisťovaním dlžky slov v texte.
táto funkcia mi vráti správnu dĺžku slova: $dlzka=mb_strlen($buf, 'UTF-8'); predtým keď tam nebolo to UTF-8 tak to vracalo zlú dĺžku pretože znaky á í ... počítalo ako dva znaky... lenže teraz mám problém, že slovo uložené v $buf nemá kódovanie UTF a ked mu cez funkciu poviem že zober prvá dva znaky zo slova a slovo obsahuje á í é... tak to pokazí.. a hodí tam divné znaky... túto funkciu využívam na zalamovanie dlhých slov (po 50tich znakoch vloží medzeru a pokračuje) Ako mám previesť slovo $buf tiež do UTF aby znaky (žýáí) zaberali jeden znak a nie dva? nechápem tomu pretože v databáze sú slová uložené vo formáte utf8_general_ci Ďakujem ps: celá funkcia function textchange($text) { $buff=explode(" ",$text); $pocet=count($buff); $a=$pocet; $vysledok=""; while($a!=-1) { $buf="$buff[$a]"; $dlzka=mb_strlen($buf, 'UTF-8'); if($dlzka>0) { if($dlzka>50) { $b=0; $bufy=""; while($b!=$dlzka) { if($b%50!=0) $bufy="$bufy$buf[$b]"; else $bufy="$bufy $buf[$b]"; $b++; } $buf="$bufy"; } $vysledok="$buf $vysledok"; } $a--; } $text="$vysledok"; return $text; } Moderátor Joker: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
WertriK Profil |
#2 · Zasláno: 20. 4. 2010, 09:16:15
|
||
Majkl578 Profil |
#3 · Zasláno: 20. 4. 2010, 13:18:25 · Upravil/a: Majkl578
kachnak:
„Ako mám previesť slovo $buf tiež do UTF aby znaky (žýáí) zaberali jeden znak a nie dva?“ $buf = iconv('vstupní kódování', 'UTF-8', $buf); „nechápem tomu pretože v databáze sú slová uložené vo formáte utf8_general_ci“ A i script je psaný v UTF-8? |
||
Časová prodleva: 14 let
|
0