У меня есть текстовый файл, в котором содержится переменное количество строк, и каждая строка содержит 3 вещи, IP-адрес, информацию браузера и дату.По сути, это журнал посещений, который содержит эти вещи.
Я хочу взять строку, получить каждую отдельную деталь и заменить строки в таблице html-документов.На данный момент я могу получить только первую строку из файла.
Когда я пытался просто напечатать что-то в цикле while, который проходит через каждую строку, чтобы увидеть, действительно ли он проходит через это несколько раз,не делает.Он повторяется только один раз, проходит один круг и читает одну строку, а затем останавливается.
Текстовый файл содержит, например:
- 2019/02/12 02:32:56- Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 71.0.3578.98 Safari / 537.36 - :: 1
- 2019/02/12 02:32: 58 - Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 71.0.3578.98 Safari / 537.36 - :: 1
- 2019/02/12 02: 33: 02 - Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 71,0,3578,98 Safari / 537,36 - :: 1
Дата, информация браузера и IP.
<?php
// file path
$path = './visitors.txt';
$html = file_get_contents("log.html");
$visitor_log = fopen($path, 'r');
if(flock($visitor_log, LOCK_SH)){
// Loop genom alla rader i visitors.txt
while (($line = fgets($visitor_log)) !== false) {
$html_pieces = explode("<!--==xxx==-->", $html, 3);
$string_split = explode("--", $line, 3);
$html = str_replace("---date---", $string_split[0], $html);
$html = str_replace("---browser---", $string_split[1], $html);
$html = str_replace("---ip---", $string_split[2], $html);
}
fclose($visitor_log);
}else{
die("Error! Couldn't read from file.");
}
echo $html;
?>
Я понятия не имею, почему цикл не проходит через весь файл.Есть ли способ просто отобразить каждую строку, чтобы увидеть, может ли она на самом деле прочитать все строки?
РЕДАКТИРОВАТЬ: Я только что попытался
echo $html;
в цикле while ион печатает первую строку три раза, поэтому я считаю, что она проходит все три строки, но не получает новые данные.Это как-то связано с:
$html = file_get_contents("log.html");
не обновляется?
РЕДАКТИРОВАТЬ: HTML-код для таблицы
<table cellspacing="0" cellpadding="10" border="1" width="100%">
<thead>
<tr>
<th align="left">Dare</th>
<th align="left">Browser</th>
<th align="left">IP</th>
</tr>
</thead>
<tbody>
<!--==xxx==-->
<tr>
<td align="left">---date---</td>
<td align="left">---browser---</td>
<td align="left">---ip---</td>
</tr>
<!--==xxx==-->
</tbody>
</table>