Come far aprire php a un file html, andare su due righe, quindi scrivere lì e chiudere?
-
20-08-2019 - |
Domanda
Sto creando un file php litte per registrare alcuni indirizzi IP. Scriverà l'ip e la data / ora in un file html. Il file html sarà una tabella. Quindi voglio farlo in questo modo:
<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>
Quindi ne ho bisogno per aprire il file, scrivere l'ip e la data / ora sulla riga sopra </table>
Ho già il php per scrivere quello che voglio, ma scrive il fondo.
Sono un principiante, non so cosa mettere dove ..
Questo è quello che ho:
<?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);
?>
Soluzione
Suppongo che ci sia una sola tabella nel file. Se ce n'è più di uno, questo verrà aggiunto a ciascuno.
<?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);
?>
MODIFICA Ho combinato il mio suggerimento con il tuo codice
Altri suggerimenti
Quello che suggerirei è l'uso di 2 file, un file .log per memorizzare i dati non elaborati e uno script .php che legge da quel file .log e genera una tabella. Le ragioni principali sono:
1) il tuo file .log rimarrà molto più piccolo
2) se vuoi mai cambiare il layout, è sempre possibile modificando lo script .php
3) quando il tuo file .log diventa ENORME, potrebbe non essere possibile memorizzarne il contenuto in una stringa con file_get_contents