Я написал простой скрипт ниже, чтобы смоделировать мою проблему.
И моя строка, и шаблон содержат символы Юникода.
Обычно, если я запускаю его из командной строки (php -f test.php), он выводит «match», как и ожидалось.
Но если я запускаю его через веб-сервер (apache, http://localhost/test.php),, выводится «нет совпадения»).
Я использую PHP 5.3.
Есть идеи, почему он ведет себя по-другому?
Как мне заставить его работать через веб-сервер?
спасибо.
<?php
function myCallback($matches) {
return $matches[0];
}
$value = 'aaa äää';
$pattern = '/(\bäää)/u';
$value = preg_replace_callback($pattern, 'myCallback', $value, -1, $count);
if ($count > 0) {
echo "match";
} else {
echo 'no match';
}
?>