PHP PCRE(正则表达式)不支持 UTF-8?

2023-02-10php开发问题
5

本文介绍了PHP PCRE(正则表达式)不支持 UTF-8?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试在我的网站上运行正则表达式,但收到以下响应:

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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17