PHP HTML günlük dosyası ekleme

2 Cevap php

Her olay için HTML tabloları biçimi kullanarak, bir günlük dosyasına eklemek çalışıyorum. Ancak, çözmek için nasıl emin değilim bir zorluk var. Burada HTML statik bir çıktısı

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

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

  </table>
</html>

Soru Ben hızlı bir şekilde, tercihen işleme az miktarda kullanarak, HTML karışıklık olmadan hızlı tabloya günlük girişlerini ekleyebilirsiniz nasıl? Ben, tüm dosya yüklemek bir çiftleşmiş çözüm kullanmak ve dosyayı yeniden biliyorum ama (günlük dosyaları hızlı hızlı büyümeye olabilir!) Yavaş olabilir.

Yani Append için her zamanki açık dosyayı arıyor, ve her nasılsa son satırdan sonra yazmak, ancak etiketinden önce ediyorum.

Herhangi bir öneriniz?

PS. Ben sonunda etiketi dışarı bırakırsanız en tarayıcı HMTL kılacak biliyorum, ama ideal bir çözüm olabilir görmek için merak ediyorum.

2 Cevap

Ben gerekli başlık ve altbilgi ile dosyaya dahil sonra, sadece tablo satırları ile günlük dosyası oluşturma öneririm.

Yani 'log.html', ama yazmak olurdu 'log.php' görmek istiyorsunuz:

<html>
  <head>
  </head>
  <body>
    <table>
      <?php include('log.html') ?>
    </table>
  </body>
</html>

Tabii ki, belki de daha iyi bir şekilde (düz dosya veya veritabanı) html olmadan günlük verilerini depolamak ardından talep üzerine görünümü oluşturmak olacaktır. Ama aradığınızı için, yukarıdaki çalışması gerekir.

Tüm statik bir dosya olması gerekir, kullanabilirsiniz

bool ftruncate ( resource $handle , int $size )

dosyanın son satırını kaldırın. Sadece 'altbilgi' ne kadar bildiğinizden emin olun. İşte sizin için işe yarayabilecek bazı örnek kod.

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

İşte ftruncate function belgeler bulunuyor.

Senin için ne soruyorsun gerçekten emin değilim, ama böyle bir şey?

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