嗨,我想用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中,每当出现致命错误时,都会以*致命错误启动
但这是行不通的。请大家告诉我哪里错了。
任何建议都将不胜感激。请帮助
字符串开头的*
在正则表达式中有特殊含义;使用它存在PCRE的语法错误打开错误,这样你就知道出了什么问题,然后不要使用正则表达式来查找静态字符串:
if (strpos($script_output, $err) !== false) {
$errorfunction .= "<b>$err<br>";
}
如果您的实际用例更复杂,preg_quote
将为您转义正则表达式中具有特殊含义的字符。(请确保传递分隔符。)