簡體   English   中英

如何從文件中讀取多行直到 PHP 中的空行?

[英]How to read multiple lines from a file until a blank line in PHP?

我正在使用一個包含多行的日志文件。 我想在我的儀表板中使用這個日志文件。 該文件采用以下格式:

line1
line2
line3

line4
line5

line6
line7
line8

我想閱讀這個文件,並顯示它的內容,例如:

line1 line2 line3
line4 line5
line6 line7 line8

如何在 php 中執行此操作?

注意:我可以在儀表板中讀取文件並回顯結果。 我只需要上面的function。

至今:

<php?>
$logs = File::get('logs.txt');
$lines=explode("\n", $logs);
echo $lines['0'];

但這僅向我顯示了第一行。

方法一

假設您使用 $xline 作為臨時緩沖區。

循環遍歷日志文件,一次讀取一行。 (比如說使用 fgets)

如果從日志中讀取的行不為空,則將從日志中讀取的數據連接到臨時緩沖區,否則顯示緩沖區,清除它並將新行讀入緩沖區

所以代碼是:

<?php
$xline="";

$handle = fopen("./logs.txt", "r");
if ($handle) {
     while (($line = fgets($handle)) !== false) {
       if (trim($line)!=""){
           $xline.= " " . trim($line);
        }else{
           echo $xline."<br>";
           $xline=$line;
        }
   }
}
           echo $xline."<br>";
?>

完整的工作示例:

http://www.createchhk.com/SOanswers/SOanswer11Sep2022.php

日志文件:

http://www.createchhk.com/SOanswers/logs.txt

方法二

  1. <div>塊作為緩沖區開始
  2. 循環日志文件並使用</div><div>替換任何空白行(否則將讀取的行復制到緩沖區)
  3. 文件讀取后,output 緩沖區和一個</div>

所以代碼將是

<?php

$xline="<div>";

$handle = fopen("./logs2.txt", "r");
if ($handle) {
     while (($line = fgets($handle)) !== false) {
       if (trim($line)!=""){
           $xline.=$line;
        }else{
           $xline.="</div><div>";
        }
   }
}

           echo $xline ."</div>"; 


?>

完整的工作示例:

http://www.createchhk.com/SOanswers/SOanswer11Sep2022b.php

日志文件:

http://www.createchhk.com/SOanswers/logs2.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM