我正在尝试在我的网站上运行正则表达式,我收到了这个回复:
编译失败:支持\ P, \ p和\ X尚未编译 抵消1
谷歌搜索了一下后,我发现显然我服务器上的PCRE没有启用UTF8,因此导致问题。当我用pcretest-s ssh时,我得到了
PCRE版本6.6 06-Feb-2006
使用UTF-8支持编号 Unicode属性支持Newline 字符是LF内部链接大小= 2 POSIX malloc threshold = 10
默认匹配限制= 10000000
默认递归深度限制= 10000000匹配递归使用堆栈
当我更新pcre时,它告诉我没有任何更新。
人们告诉我,我可以启用UTF-8支持...帮助?
我是个菜鸟。
答案 0 :(得分:3)
有一个关于重建pcre here的RPM的好教程。
如果你向下滚动到“更新的RPM文件......”你会发现一些预先构建的RPM,如果你只是想让它工作(记得在你完成后重启Apache,而不仅仅是优雅的重新加载)
tl; dr版本是:使用--enable-utf8
和--enable-unicode-properties
重新编译pcre
答案 1 :(得分:3)
Yum现在应该在其存储库中找到v6.6.6.el5_6.1
个PCRE,因此执行yum update pcre
会在Centos 5上为我解决问题。
答案 2 :(得分:1)
PHP不使用“pcre”应用程序/包。 PCRE支持内置于PHP库中。您收到的错误告诉您,您的PHP库未使用PCRE UTF-8支持进行编译。
您需要使用使用正确的UTF-8选项构建的适当PCRE静态库重新编译PHP。