Как заставить php открыть html-файл, пройти две строки вверх, затем написать туда и закрыть? - PullRequest
1 голос
/ 31 января 2009

Я делаю небольшой php-файл для регистрации некоторых IP-адресов. Он собирается записать ips и дату / время в 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); 
?>

Ответы [ 2 ]

4 голосов
/ 01 февраля 2009

Я собираюсь предположить, что в файле только одна таблица. Если их несколько, это добавит их к каждому.

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

РЕДАКТИРОВАТЬ Смешал мое предложение с вашим кодом

0 голосов
/ 06 февраля 2009

Я бы предложил использовать 2 файла: один файл .log для хранения необработанных данных и скрипт .php, который читает этот файл .log и генерирует таблицу. Основными причинами являются:

1) ваш файл .log останется намного меньше

2) если вы хотите изменить макет, это всегда возможно, отредактировав скрипт .php

3) когда ваш файл .log становится ОГРОМНЫМ, возможно, не удастся сохранить его содержимое в строку с file_get_contents

...