Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何处理致命错误?_Php - Fatal编程技术网

Php 如何处理致命错误?

Php 如何处理致命错误?,php,Php,大家好,我想通过使用php的substr函数获取字符串的一部分 这是我的密码 $error = array("Warning","Parse error","*Fatal error"); $errorfunction = ''; foreach( $error as $error => $err){ if(preg_match("/$err/", $script_output, $matches, PREG_OFFSET_CAPTURE))

大家好,我想通过使用php的substr函数获取字符串的一部分

这是我的密码

$error = array("Warning","Parse error","*Fatal error");
$errorfunction = ''; 
      foreach( $error as $error => $err){     
      if(preg_match("/$err/", $script_output, $matches, PREG_OFFSET_CAPTURE))
        $errorfunction .= "<b>$err<br>";
      }
      if($errorfunction != ''){ 
      $script_output =substr($script_output,0,strpos($script_output,"in ")); 
      }
我将致命错误定义为*致命错误,因为在php中,每当出现致命错误时,它都以*致命错误开始

但这是行不通的。请大家告诉我哪里错了

如有任何建议,将不胜感激。
请帮助

字符串开头的
*
在正则表达式中有特殊含义;使用它时,PCRE会出现语法错误。启用“错误”以便知道出了什么问题,然后不要使用正则表达式查找静态字符串:

if (strpos($script_output, $err) !== false) {
    $errorfunction .= "<b>$err<br>";
}
if(strpos($script\u output,$err)!==false){
$errorfunction.=“$err
”; }

如果您的实际用例更复杂,将为您转义正则表达式中具有特殊意义的字符。(确保传递分隔符。)

我已经打开了“按错误报告错误”(E_ALL);但由于这个错误,你让我使用preg_quote。我正在使用,但问题仍然是一样的,我想从这个
致命错误中获取子字符串:调用/home/code1/public_html/eval/exec.php(24):eval()中未定义的函数sanjay(),第2行的代码
和从@user2372214开始到单词“in”的子字符串:好吧,那么问题是在这一行中没有
*
。所以把它拿出来。
if (strpos($script_output, $err) !== false) {
    $errorfunction .= "<b>$err<br>";
}