Всем привет! Есть код который выводит данные из файла построчно от..до. Проблема в следующем.. если указывать искомое слово как строка то все работает
if (trim($file[$i]) == 'начало' )
, а если вместо строки 'начало' указать регулярку то не находит совпадений.
Подскажите как в выражение подставить регулярку
if (trim($file[$i]) == $regstart )
<?php
$res = file(__DIR__ . '/my.log'); //открытие файла
$file=$res; // открытие переменной
$i=0; // переменная счетчика
$regstart = '/[A-Z]{1}[a-z]{2}\s\d{4}.\d\d.\d\d.\d\d.\d\d.\d\d.\d{3}.\s\d\d.\sSession 202966.\schild\s\d\d\d\d/'; // регулярка выводить от..
$regend = '/[A-Z]{1}[a-z]{2}\s\d{4}.\d\d.\d\d.\d\d.\d\d.\d\d.\d{3}.\s\d\d.\s\-\-\-\-\-\-\-\-\-\-/'; // регулярка выводить до..
foreach($file as $element)
{
while ($i<count($file)) {
if (trim($file[$i]) == 'начало' )
break;
$i++;
}
while ($i<count($file)) {
if (trim($file[$i]) == 'конец' )
break;
echo $file[$i]."<br>";
$i++;
}
}
?>
Содержимое файла my.log
начало
Fri 2018-01-12 00:07:29.732: 05: Session 202966; child 0001
Fri 2018-01-12 00:07:29.739: 05: * P=0=(281) MX=[mx.yandex.net]
Fri 2018-01-12 00:07:29.739: 05: Resolving A record for mx.yandex.net (DNS Serv2)...
Fri 2018-01-12 00:07:50.847: 01: ----------
конец
...
много текста
...
начало
Fri 2018-01-12 00:07:29.732: 05: Session 202967; child 0001
Fri 2018-01-12 00:07:29.732: 01: Parsing message sg>
Fri 2018-01-12 00:07:50.847: 04: SMTP session terminated (Bytes in/out: 0/0)
Fri 2018-01-12 00:07:50.847: 01: ----------
конец