Hozzászólások
Amint a topik címe is elárulja, van egy ilyen gondom: az input stringet át kéne varázsolni nagybetűsre, azonban a strtoupper("ördöngösség") ezzel tér vissza: öRDöNGöSSéG.
Az mb_strtoupper() használatára nincs lehetőség.
Van valakinek valami épkézláb megoldása? (Ja, str_replace("ö","Ö", $str) se működik...). A script ISO-8859-2 kódolású, ettől se lehet eltérni.
Előre köszönöm.
- A hozzászóláshoz be kell jelentkezni
setlocale(LC_CTYPE, "hu_HU")
vagy valami hasonló...
- A hozzászóláshoz be kell jelentkezni
Célszerűbb mindent kisbetűsíteni, abból kisebb bajod lesz. Gondolom arról van szó, hogy a kis-nagybetűket ne különböztesse meg a rendszer.
- A hozzászóláshoz be kell jelentkezni
[code:1:716d8d201c]$string1 = "éáőúöüóűí";
for ($i=0; $i<strlen($string1); $i++){
echo $string1[$i]." (".ord($string1[$i]).")\n";
}
$string2 = "ÉÁŐÚÖÜÓŰÍ";
for ($i=0; $i<strlen($string2); $i++){
echo $string2[$i]." (".ord($string2[$i]).")\n";
}[/code:1:716d8d201c]
Aztán ez alapján legrosszabb esetben egy str_replace, de gyanítom, hogy egyszerűbben is lehetne.
Vagy próbálj más stringeket ord()-olni, hátha az segít.
- A hozzászóláshoz be kell jelentkezni
Na, most derült ki, hogy az adatbázis iso-8859-1 -es kódolást használ. Így a megoldás a következő:
$keres=preg_replace(array('/([a-z])/e','/í/','/é/','/á/','/ű/','/ő/','/ú/','/ö/','/ü/','/ó/'),array("strtoupper('\\1')",'Í','É','Á','Ű','Ő','Ú','Ö','Ü','Ó'),$keres);
- A hozzászóláshoz be kell jelentkezni