在PHP中附加到HTML日志文件

在PHP中附加到HTML日志文件,php,html,file-processing,Php,Html,File Processing,我正试图附加到日志文件中,为每个事件使用HTML表格格式。然而,有一个困难我不知道如何解决。这里是HTML的静态输出 <table> <tr><td> .... </td> </tr> <!-- new log entry should enter here --> </table> </html> .... 问题是如何快速地将日志条目插入到表中,而不会弄乱HTML,最好使用

我正试图附加到日志文件中,为每个事件使用HTML表格格式。然而,有一个困难我不知道如何解决。这里是HTML的静态输出

<table>
  <tr><td> .... </td>
  </tr>

 <!-- new log entry should enter here -->

  </table>
</html>

.... 
问题是如何快速地将日志条目插入到表中,而不会弄乱HTML,最好使用最少的处理量?我知道我可以加载整个文件,使用模板解决方案,并重写文件,但这可能会很慢(日志文件可能会快速增长!)

因此,我正在寻找用于append的通常打开的文件,并以某种方式在最后一行之后但在标记之前写入

有什么建议吗


另外,我知道如果我在最后省略标记,大多数浏览器都会呈现HMTL,但我很好奇是否有一个理想的解决方案。

我不太确定你想要什么,但它是这样的吗

<table>
    <tr><td> .... </td></tr>
    <?php
        foreach ($logitems as $item)
        {
            echo "<tr><td>" . $value . "</td></tr>\n";
        }
    ?>
</table>

.... 

我建议只创建包含表行的日志文件,然后将其包含在包含所需页眉和页脚的文件中

因此,您将写入“log.html”,但查看“log.php”,它将是:

<html>
  <head>
  </head>
  <body>
    <table>
      <?php include('log.html') ?>
    </table>
  </body>
</html>
删除文件的最后一行。只需确保您知道“页脚”有多长。下面是一些可能适合您的示例代码

$footer = "</table></html>";
$file = fopen($log_file, 'rw');
ftruncate($file, strlen($footer));
fseek($file, 0, SEEK_END);
fputs($file, $log);
fputs($file, $footer);
fclose($file);
$footer=”“;
$file=fopen($log_文件,'rw');
ftruncate($file,strlen($footer));
fseek($file,0,SEEK\u END);
fputs($file,$log);
fputs($file,$footer);
fclose($文件);

这是文档。

这似乎有点理智,但问题似乎是如何附加到静态文件。如果不需要创建静态文件,那么这是一种比我在回答中提供的更好的方法(IMO);写入($f,
);外国法郎(f美元);将PHP输出到静态页面,否?这两个都是很好的答案;我想我忘了提到我需要一个静态的.html文件,因为它可能通过电子邮件传递给其他人。其目的并不是真正拥有一个日志查看器。您可以使用htaccess将.php更改为.htm:如果必须使用static,那么第二个示例应该是您正在寻找的。但是,如果服务器正在为用户发送电子邮件的文件提供服务,这两种方式都不重要,他们将得到一个完整的HTML文件。
$footer = "</table></html>";
$file = fopen($log_file, 'rw');
ftruncate($file, strlen($footer));
fseek($file, 0, SEEK_END);
fputs($file, $log);
fputs($file, $footer);
fclose($file);