Sākumlapa › Forumi › Mājas lapu izstrāde › Servera puse (php, java, ruby, perl, python) › Kā pareizi skaitīt multibyte simbolus php rindā (string’
Parasti šajā forumā esmu radis atbildes uz visiem sevi interesējošiem (gīkiskiem) jautājumiem, tādēļ pirms uzdodu šo jautājumu kādā maksas ārvalstu forumā, izmēģināšu veiksmi šeit. (Ja nu kādam letiņam ir bijusi darīšana ar šo problēmu).
Tātad, negribu ļaut lai lietotājs kurš reģistrējas manā ūbermega portālā varētu izmantot lietotāja vārdu vai paroli kura ir īsāka par noteiktu skaitu simbolu (teiksim sešu).
Mēģināju izmantot strlenmb_strlen
Š…emot vērā to, ka latviešiem ir raksturīgi izmantot garumzīmes un mīkstinājuma zīmes (kas ir multibyte simboli), domāju ka mana lameriskā problēma būs vairāk kā saprotama kādam php guru.
Ä€, un lūdzu neiesakiet javascript risinājumus, jo man pret tiem ir alerģija.
mb_internal_encoding()mb_strlen()
function strlen_utf8 ($str)
{
$i = 0;
$count = 0;
$len = strlen ($str);
while ($i
break;
if ($chr & 0x80)
{
$chr <<= 1;
while ($chr & 0x80)
{
$i++;
$chr <<= 1;
}
}
}
return $count;
}
if(!preg_match(’/[^a-zA-Z0-9]{5,25}/’, $username))
{
exit;
}
Bet tas gluži nav risinājums. xD
Bet jocīgi, ka mb_strlen() nestrādā, kā vajag… 🙁
Paldies arī pārējiem, bet Crow ieteiktais liekas vienkāršāks…