douqie1852 2012-04-08 15:14
浏览 34
已采纳

preg_replace + UTF-8在一台服务器上不起作用,但在另一台服务器上起作用

echo preg_match("/\b(בדיקה|מילה)\b/iu", "זוהי בדיקה");

For some reason, this code returns 1 on several servers I've tested it on, but 0 on one specific server.

PCRE is compiled with UTF-8 support and Unicode properties support. What could be the issue?

  • 写回答

2条回答 默认 最新

  • dtt3399 2012-04-11 10:19
    关注

    There may be difference between PCRE versions which PHP use.

    PHP and PCRE versions: http://php.net/pcre.installation

    You should use 8.10+ (PHP 5.3.4+)

    Version 8.10 25-Jun-2010:

    1. Added PCRE_UCP to make \b, \d, \s, \w, and certain POSIX character classes use Unicode properties. (*UCP) at the start of a pattern can be used to set this option. Modified pcretest to add /W to test this facility. Added REG_UCP to make it available via the POSIX interface.

    Edit: Just done some tests and it gives 1 on PHP 5.3.10 and 0 on PHP 5.3.2 and PHP 5.3.3.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看