РЕДАКТИРОВАТЬ2 :
mb_internal_encoding("UTF-8");
$s = "sdfΣ";
echo $s,"\n";
echo mb_ereg_replace("Σ\\b", 'ς', $s);
РЕДАКТИРОВАТЬ : Очевидно, это не работает для греческих букв, preg_replace
будет соответствовать "f", а неsigma.
Не то, чтобы я знал какой-либо греческий, но σ
помечен как "греческая строчная сигма", так что вы просите строчную версию, она все равно должна давать σ
.
mb_strtolower()
должно работать.Вы, вероятно, делаете что-то не так.Разместите соответствующую часть вашей программы.
В любом случае, с preg_replace
и при условии, что ваш скрипт и $cat_name
закодированы в UTF-8, это:
echo preg_replace ("/\\w\\b/eu", 'mb_strtolower(\'\\0\', \'UTF-8\')', $cat_name);
, например,если $cat_name == "sdfÉ"
, это дает sdfé
.