preg_match函数已损坏? PHP 7.4.2

问题描述

我有一个很奇怪的问题。

当我在浏览器中打开以下脚本并执行该脚本时,一切都会按预期进行。即使我在命令行中调用脚本,也可以得到预期的结果。

但是,如果我在后台作业中运行脚本,则该脚本将在“ preg_match”函数中中止,而不会出现任何错误。我在任何地方都没有错误消息,无论是在日志中还是在其他任何地方。我还检查了该功能是否存在,并且确实存在。

该脚本似乎在preg_match中终止,并且未显示任何有关可能的错误的消息。所以我只得到输出“ CHECKPOINT 1”。

我已经检查了PHP版本,并且到处都检查了相同的版本(相同的路径)。而且pcre的设置是相同的。

是否可能有不同的preg_match模块或功能?有什么办法可以检查功能发生了什么?

使用try&catch,我没有得到有关该问题的任何信息。

<?php
class pcre_check
{

    public function setUp() {
    }

    public function perform() {

      echo "CHECKPOINT 1";
      preg_match("/[0-9]{4}/","6876 ABCDEFGH",$matches,PREG_OFFSET_CAPTURE);
      print_r($matches);
          echo "CHECKPOINT 2";
    }

    public function tearDown() {

    }
}

$test   = new pcre_check();
$test->setUp();
$test->perform();
$test->tearDown();
?>

系统信息:

  • Apache服务器
  • PHP 7.4.2

同一脚本可在生产服务器上在线运行。只有在我的本地服务器上,我才遇到这个问题。

似乎正则表达式存在问题。函数preg_replace也不起作用,但是用普通字符串替换的str_replace起作用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)