【发布时间】:2012-03-29 21:19:30
【问题描述】:
我在下面写了一个简单的脚本来模拟我的问题。 我的字符串和模式都包含 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';
}
?>
【问题讨论】:
-
您是否将标头发送到服务器?
-
无标题。我手动将 url 输入到浏览器地址栏。该字符串不是用户输入的,它是在 php 脚本中硬编码的。