У меня есть файл журнала, который постоянно обновляется каждую минуту, который также имеет значение автоинкремента. Впервые я прочитаю данные и вставлю в базу данных вместе с последним значением автоинкремента в этом файле. Во второй раз я могу получить последнее значение автоинкремента из базы данных, но не смог проверить это значение в файле и удалить оставшиеся строки меньше этого значения в файле.
Я надеюсь, что этот код полезен для вас:
laravel.log:
[Fri Aug 12 20:37:04 2016][781] abc abcded1
[Fri Aug 12 20:37:04 2016][782] ali shahabi2
[Fri Aug 12 20:37:04 2016][783] mohammad3
[Fri Aug 12 20:37:04 2016][784] sara4
[Fri Aug 12 20:37:04 2016][785] reza5
код:
<?php
$search_id = 782; # last id in table
$handle = @fopen('laravel.log', "r");
$save_flag=0;
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if ($save_flag==0)
{
if(strpos($buffer, "[$search_id]") !== FALSE)
$save_flag=1;
// save this line to DB
}
else
{
// All messages in this section are new
// so save this line to DB
}
}
fclose($handle);
}
Других решений пока нет …