大家好我想通过使用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 "));
}
整个功能正在成功运行,但当我遇到致命错误时,功能无效。
你们可以看到我已经定义了错误数组
$error = array("Warning","Parse error","*Fatal error");
并且我将致命错误定义为*致命错误,因为在PHP出现致命错误时它会以*致命错误开始
但这不起作用。请各位建议我,我错了。
任何建议将不胜感激。 请帮忙
答案 0 :(得分:0)
字符串开头的*
在正则表达式中具有特殊含义;使用它时,PCRE存在语法错误。 打开错误以便您知道出现了什么问题,然后不要使用正则表达式来查找静态字符串:
if (strpos($script_output, $err) !== false) {
$errorfunction .= "<b>$err<br>";
}
如果您的真实用例更复杂,preg_quote
将在正则表达式中转义具有特殊含义的字符。 (确保通过分隔符。)