Como fazer php abrir um arquivo html, ir duas linhas para cima, em seguida, escrever lá e fechar?

StackOverflow https://stackoverflow.com/questions/499542

  •  20-08-2019
  •  | 
  •  

Pergunta

Estou fazendo um php-file litte para registrar alguns endereços IP. Ele vai escrever os ips e data / hora em um arquivo html. O arquivo html vai ser uma mesa. Então, eu quero mak-lo assim:

<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>

Então, eu preciso dele para abrir o ficheiro, escreva o ip e data / hora na linha acima </table> Eu já tenho o php para escrever o que eu quero, mas ele grava uma parte inferior.

Eu sou muito novato, eu não sei o que colocar onde ..

Isto é o que eu tenho:

<?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); 
?>
Foi útil?

Solução

Eu estou indo supor que há apenas uma única tabela no arquivo. Se houver mais de um, isso irá adicioná-lo a cada um.

<?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);
?>    

Editar Mixed minha sugestão com o seu código

Outras dicas

O que eu sugiro é usar 2 arquivos, um arquivo de log para armazenar os dados em bruto e um script php que lê a partir desse arquivo de log e gerar uma tabela. As principais razões são:

1) seu arquivo de log permanecerá muito menor

2) se você quiser alterar o esquema, é sempre possível editando o script php

3) quando o arquivo de log se torna enorme, talvez não seja possível armazenar seu conteúdo em uma string com file_get_contents

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top