Autor | Zpráva | ||
---|---|---|---|
zkrma Profil * |
#1 · Zasláno: 4. 5. 2011, 19:10:01
Ahoj. Ve svém php 5.3 skriptu porovnávám utf8 řetězce. Chtěl bych docílit stejného chování jako třeba v mysql (např. č < d), ale nějak se mi to v php nedaří.
setlocale(LC_ALL, 'cs_CZ.UTF-8'); $str1 = 'dytrý'; $str2 = 'čytrý'; var_dump(strcmp($str1, $str2)); var_dump($str1 > $str2); oba vracejí špatný výsledek (-1, false) Co dělám špatně? A proč vlastně existuje vůbec v php fce strcmp, když jde porovnávat operátory? |
||
Stano Profil |
#2 · Zasláno: 4. 5. 2011, 19:16:04
nehľadáš napríklad http://php.net/manual/en/function.similar-text.php to vracia percentuálnu zhodu dvoch stirngov
|
||
Keeehi Profil |
#3 · Zasláno: 4. 5. 2011, 19:32:03
zkrma:
S první otázkou vám moc neporadím. Jen jsem zjistil, že strcmp by snad mělo ignorovat setlocale. Zato strcoll by se mělo jím řídit. Zase by tam mohl být problém, že není binary safe. Na druhou otázku odpovím jednoduše. Na obyčejné porovnání by měl stačit operátor. strcmp vám i řekne, jak je rozdíl veliký. |
||
Časová prodleva: 13 let
|
0