PHP UTF-8 边界正则表达式不起作用

PHP UTF-8 边界正则表达式不起作用

我有一个 CentOS 6,其中安装了最新更新并运行 LAMP 堆栈。

一位用户抱怨他的代码不起作用,他正尝试将 preg_match 与 unicode 字符一起使用。

这是不起作用的代码:

$regex = '/\bøl\b/iu';

preg_match($regex, "han drikker øl for sjov", $matches);
print_r($matches);

奇怪的是,这个代码在其他服务器上完全可以正常工作,而我却无法解决这个问题。我尝试了几种方法:

  • PCRE 已安装并且支持 UTF-8
  • 确保文件确实是 UTF-8
  • 尝试设置 mb_regex_encoding
  • 我读问题也是如此,但是它可以在没有这个的其他服务器上工作,就像在我的例子中一样
  • mbstring() 已安装
  • PHP 版本为 5.3,是 yum 供应商提供的软件包

另外,我刚刚在从源代码手动构建的安装上对其进行了测试,并且它运行良好 - 但我不想手动构建软件包。

有什么建议么?

相关内容