Без использования регулярного выражения (следующий код можно было бы оптимизировать, но я оставил его таким, чтобы было понятнее, что происходит):
$end = strlen($string);
if(false !== strpos($string, 'VL ')) {
$end = strpos($string, 'VL ');
} else if(false !== strpos($string, 'Total violation level so far ')) {
$end = strpos($string, 'Total violation level so far ');
}
$string = substr($string, strpos($string, 'NC: '), $end);
$string
будет содержать одну строку вашего журналафайл.Чтобы получить все строки файла журнала в массиве, чтобы облегчить это, вы должны сделать что-то вроде этого:
$lines = file('/path/to/file.ext');