我在下面写了一个简单的脚本来模拟我的问题。我的字符串和模式都包含 unicode 字符。
基本上,如果我从命令行(php -f test.php)运行它,它会按预期打印“匹配”。但是如果我通过网络服务器(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';
}
?>