2013-12-16 4 views
3

Привет всем Я хочу взять часть строки, используя функцию substr php.Как справиться с фатальной ошибкой?

Вот мой код

$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

* в начале строки имеет особое значение в регулярных выражениях; используя его, есть синтаксическая ошибка для PCRE. Включите ошибки, так что вы знаете, что происходит неправильно, то не использовать регулярные выражения, чтобы найти статические строки:

if (strpos($script_output, $err) !== false) { 
    $errorfunction .= "<b>$err<br>"; 
} 

Если ваш реальный случай использования является более сложным, preg_quote избежит символов с особым значением в регулярных выражениях для тебя. (Обязательно передайте разделитель.)

+0

Я уже включил ошибку error_reporting (E_ALL); но при этом не была воспроизведена ошибка –

+0

@ user2372214: У вас установлено 'display_errors' значение' On'? – Ryan

+0

Да display_errors установлен на уже –

Смежные вопросы