echo preg_match("/\b(בדיקה|מילה)\b/iu", "זוהי בדיקה");由于某种原因,这段代码在我测试过的几台服务器上返回1,但在一台特定服务器上返回0。
PCRE是使用UTF-8支持和Unicode属性支持进行编译的。可能的问题是什么?
发布于 2012-04-11 18:19:47
PHP使用的PCRE版本之间可能存在差异。
PHP和PCRE版本:http://php.net/pcre.installation
你应该使用8.10+ (PHP 5.3.4+)
Version 8.10 25-Jun-2010:
编辑:刚刚做了一些测试,在PHP5.3.10上给出了1,在PHP5.3.2和PHP5.3.3上给出了0。
发布于 2012-04-11 18:25:50
这可能取决于PCRE库的版本。要使事情更规范化,可以尝试使用«UCP verb»:preg_match('/(*UCP)\b(בדיקה|מילה)\b/iu', 'זוהי בדיקה')。
尽管如此,它仍然需要PCREv8.10,从PHP5.3.4开始附带,或者在编译标志--with-pcre-regex=DIR中提到。
Ref (in russian)
https://stackoverflow.com/questions/10063874
复制相似问题