Как заставить php открыть html-файл, перейти на две строки вверх, затем написать там и закрыть?
-
20-08-2019 - |
Вопрос
Я создаю небольшой php-файл для регистрации некоторых IP-адресов.Он собирается записать IP-адреса и дату / время в html-файл.HTML-файл будет представлять собой таблицу.Поэтому я хочу сделать это вот так:
<table cellpadding="6" rules="groups" frame="no">
<thead>
<tr><th>IP</th><th>Date</th><th>Time</th></tr>
</thead>
<tbody>
<tr><td>192.168.0.1</td><td>31. January 2009</td><td>19:21:09</td></tr>
</tbody>
</table>
Итак, мне нужно, чтобы он открыл файл, записал ip и дату / время в строке выше </table>
У меня уже есть php, чтобы написать то, что я хочу, но он пишет внизу.
Я очень новичок, я не знаю, что и куда вставлять..
Это то, что у меня есть:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("j. F Y");
$time = date("H:i:s");
$file = fopen('./iplogg.html', 'a', 1);
$text="<tr><td>{$ip}</td><td>{$date}</td><td>{$time}</td></tr> \n";
fwrite($file, $text);
fclose($file);
?>
Решение
Я собираюсь предположить, что в файле есть только одна таблица.Если их несколько, это добавит их к каждому.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("j. F Y");
$time = date("H:i:s");
$text="<tr><td>{$ip}</td><td>{$date}</td><td>{$time}</td></tr> \n";
$originalfile = file_get_contents ('./iplogg.html');
$newFile = str_replace('</table>',$text.'</table>',$originalfile);
file_put_contents('./iplogg.html', $newFile);
?>
Редактировать Смешал мое предложение с вашим кодом
Другие советы
Что я бы предложил, так это использовать 2 файла, один .файл журнала для хранения необработанных данных и php-скрипт, который считывает их .файл журнала и генерирует таблицу.Основными причинами являются:
1) ваш .файл журнала останется намного меньше
2) если вы когда-нибудь захотите изменить макет, это всегда возможно путем редактирования php-скрипта
3) когда ваш .файл журнала становится ОГРОМНЫМ, может оказаться невозможным сохранить его содержимое в строку с file_get_contents