| 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: 16 let
|
|||
0
).