문제

각 사건에 대해 HTML 테이블 형식을 사용하여 로그 파일에 추가하려고합니다. 그러나 해결 방법을 잘 모르는 어려움이 있습니다. 다음은 HTML의 정적 출력입니다

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

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

  </table>
</html>

문제는 HTML을 엉망으로 만들지 않고 신속하게 로그 항목을 테이블에 빠르게 삽입하고 바람직하게는 최소한의 처리를 사용하는 방법입니다. 전체 파일에로드하고 템플릿 솔루션을 사용하고 파일을 다시 작성할 수 있지만 느리게 될 수 있습니다 (로그 파일이 빠르게 증가 할 수 있습니다!).

그래서 나는 Append를위한 일반적인 열린 파일을 찾고 있으며, 마지막 행 뒤에는 태그 전에 글을 쓰고 있습니다.

제안이 있습니까?

추신. 마지막에 태그를 제거하면 대부분의 브라우저가 HMTL을 렌더링한다는 것을 알고 있지만 이상적인 솔루션이있을 수 있는지 궁금합니다.

도움이 되었습니까?

해결책

테이블 행만으로 로그 파일을 작성한 다음 필요한 헤더와 바닥 글로 파일에 포함시킵니다.

따라서 'log.html'에 쓸 수 있지만 'log.php'를 봅니다.

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

물론, 아마도 더 좋은 방법은 HTML없이 로그 데이터를 저장 한 다음 (플랫 파일 또는 데이터베이스) 주문시보기를 생성하는 것입니다. 그러나 당신이 찾고있는 것에서 위의 일이 효과가 있어야합니다.

모든 것이 정적 파일에 있어야하는 경우 사용할 수 있습니다.

bool ftruncate ( resource $handle , int $size )

파일의 마지막 줄을 제거합니다. '바닥 글'이 얼마나 오래 있는지 확인하십시오. 다음은 귀하에게 적합 할 수있는 예제 코드입니다.

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

여기에 있습니다 ftruncate 함수 선적 서류 비치.

다른 팁

나는 당신이 무엇을 요구하는지 잘 모르겠지만, 이와 같은 것입니까?

<table>
    <tr><td> .... </td></tr>
    <?php
        foreach ($logitems as $item)
        {
            echo "<tr><td>" . $value . "</td></tr>\n";
        }
    ?>
</table>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top