我正在尝试在我的网站上运行正则表达式,但收到以下响应:
I am attempting to run a regex on my site, and I am getting this response:
编译失败:支持P,p 和 X 尚未编译偏移量 1
Compilation failed: support for P, p, and X has not been compiled at offset 1
在谷歌上搜索了一下之后,我发现我服务器上的 PCRE 显然没有启用 UTF8,因此导致了问题.当我使用 pcretest -C ssh 时,我得到
After googling for a bit, I've found that apparently my PCRE on my server is not UTF8 enabled, and is therefore causing problems. When I ssh with pcretest -C I get
PCRE 6.6 版 2006 年 2 月 6 日
PCRE version 6.6 06-Feb-2006
编译支持UTF-8 否Unicode 属性支持换行字符为 LF 内部链接大小 =2 POSIX malloc 阈值 = 10
默认匹配限制 = 10000000
默认递归深度限制 =10000000 匹配递归使用堆栈
Compiled with UTF-8 support No Unicode properties support Newline character is LF Internal link size = 2 POSIX malloc threshold = 10
Default match limit = 10000000
Default recursion depth limit = 10000000 Match recursion uses stack
当我执行 yum update pcre 时,它告诉我没有任何东西可以更新.
When I do yum update pcre it tells me that there isn't anything to update.
人们告诉我我可以打开 UTF-8 支持...帮助?
People are telling me that I can turn on UTF-8 support...help?
我是菜鸟.
有一个关于为 pcre 重建 RPM 的很好的教程 这里.
There's a good tutorial on rebuilding the RPM for pcre here.
如果您向下滚动到更新的 RPM 文件...",您会发现一些预先构建的 RPM,如果您只是想让它工作(记住在完成后重新启动 Apache,而不仅仅是正常的重新加载).
If you scroll down to "Updated RPM file for..." you'll find some pre-built RPM's if you just want it to work (remember to restart Apache after you're done, not just a graceful reload).
tl;dr 版本是:用 --enable-utf8
和 --enable-unicode-properties
The tl;dr version is: recompile pcre with --enable-utf8
and --enable-unicode-properties
这篇关于PHP PCRE(正则表达式)不支持 UTF-8?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!