Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg#u replace+;UTF-8不';不能在一台服务器上工作,但可以在另一台服务器上工作_Php_Utf 8_Preg Replace - Fatal编程技术网

Php preg#u replace+;UTF-8不';不能在一台服务器上工作,但可以在另一台服务器上工作

Php preg#u replace+;UTF-8不';不能在一台服务器上工作,但可以在另一台服务器上工作,php,utf-8,preg-replace,Php,Utf 8,Preg Replace,出于某种原因,这段代码在我测试过的几个服务器上返回1,但在一个特定的服务器上返回0 PCRE使用UTF-8支持和Unicode属性支持编译。有什么问题吗?PHP使用的PCRE版本之间可能存在差异 PHP和PCRE版本: 您应该使用8.10+(PHP5.3.4+) 添加了PCRE\U UCP以生成\b、\d、\s、\w和某些POSIX字符类 使用Unicode属性。(*UCP)在图案开始处可用于设置 这个选项。修改了pcretest以添加/W以测试此设施。补充 注册UCP,使其通过POSIX接口

出于某种原因,这段代码在我测试过的几个服务器上返回1,但在一个特定的服务器上返回0


PCRE使用UTF-8支持和Unicode属性支持编译。有什么问题吗?

PHP使用的PCRE版本之间可能存在差异

PHP和PCRE版本:

您应该使用8.10+(PHP5.3.4+)

  • 添加了PCRE\U UCP以生成\b、\d、\s、\w和某些POSIX字符类 使用Unicode属性。(*UCP)在图案开始处可用于设置 这个选项。修改了pcretest以添加/W以测试此设施。补充 注册UCP,使其通过POSIX接口可用
  • 编辑:
    刚刚做了一些测试,它在PHP5.3.10上给出了1,在PHP5.3.2和PHP5.3.3上给出了0。

    这可能取决于PCRE库的版本。为了使事情更加规范化,请尝试使用«UCP动词»:
    preg_match('/(*UCP)\b(UCP)

    它仍然需要PCRE v8.10,从5.3.4开始随PHP提供,或者在编译标志
    中提到时,使用PCRE regex=DIR


    语言环境
    是否从此服务器?web服务器的默认字符集?签入响应的“firebug”标题encoding@ZiTAL它与其他服务器上的相同:接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3这是什么<代码>打印(mb_detect_order())确保文件使用UTF8编码,某些文件复制程序会更改编码。否则,@ZiTAL会提示区域设置可能起作用:@ZiTAL数组([0]=>ASCII[1]=>UTF-8)在所有服务器上。还有其他想法吗?这真令人沮丧。当然,文件也是用UTF-8编码的。
    echo preg_match("/\b(בדיקה|מילה)\b/iu", "זוהי בדיקה");