私の問題をシミュレートするために、以下の簡単なスクリプトを書きました。文字列とパターンの両方に Unicode 文字が含まれています。
基本的に、コマンド ライン (php -f test.php) から実行すると、期待どおりに "match" が出力されます。しかし、Web サーバー (Apache、http://localhost/test.php ) を介して実行すると、「一致しません」と出力されます。PHP 5.3 を使用しています。
なぜそれが異なる動作をするのか考えていますか? Web サーバー経由で動作させるにはどうすればよいですか?
ありがとう。
<?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';
}
?>