| 
							- <?php
 - 
 - const LOG_PATH = '../log.txt';
 - 
 - header ('Content-Type: application/json; charset=UTF-8');
 - 
 - $log_data = [];
 - 
 - $page = (int) (filter_input (INPUT_POST, 'p') ?? 1);
 - $length = (int) (filter_input (INPUT_POST, 'max') ?? 20);
 - $asc = (int) (filter_input (INPUT_POST, 'asc') ?? 0) !== 0;
 - $keyword = trim (filter_input (INPUT_POST, 'q') ?? '');
 - 
 - $date_start = filter_input (INPUT_POST, 'start');
 - $date_end = filter_input (INPUT_POST, 'end');
 - 
 - $f = fopen (LOG_PATH, 'r');
 - 
 - if ($f !== false)
 -   {
 -     while (($dt = fgetcsv ($f, 0, "\t")) !== false)
 -       {
 -         $chat_info = json_decode ($dt[1]);
 - 
 -         $log_data[] = ['dateTime'     => $dt[0],
 -                        'chatIcon'     => $chat_info -> author -> imageUrl,
 -                        'chatName'     => htmlspecialchars ($chat_info -> author -> name),
 -                        'chatMessage'  => htmlspecialchars ($chat_info -> message),
 -                        'answer'       => htmlspecialchars ($dt[2])];
 -       }
 -   }
 - 
 - fclose ($f);
 - 
 - unset ($f);
 - 
 - if ($keyword !== '')
 -   {
 -     $log_data = array_filter ($log_data, fn ($row) => (
 -         strpos (($row['chatName'] . "\n" . $row['chatMessage'] . "\n"
 -                  . $row['answer']),
 -                 $keyword)
 -         !== false));
 -   }
 - 
 - if ($date_start)
 -   {
 -     $log_data = array_filter ($log_data, fn ($row) => (
 -         substr ($row['dateTime'], 0, 10) >= $date_start));
 -   }
 - 
 - if ($date_end)
 -   {
 -     $log_data = array_filter ($log_data, fn ($row) => (
 -         substr ($row['dateTime'], 0, 10) <= $date_end));
 -   }
 - 
 - $pages_max = (int) ((count ($log_data) - 1) / $length) + 1;
 - 
 - if (!($asc))
 -   $log_data = array_reverse ($log_data);
 - 
 - $log_data = array_slice ($log_data, ($page - 1) * $length, $length, true);
 - 
 - echo json_encode ($log_data);
 
 
  |