我正在使用一個包含多行的日志檔案。我想在我的儀表板中使用這個日志檔案。該檔案采用以下格式:
line1
line2
line3
line4
line5
line6
line7
line8
我想閱讀這個檔案,并顯示它的內容,例如:
line1 line2 line3
line4 line5
line6 line7 line8
我怎樣才能在 php 中做到這一點?
注意:我可以在儀表板中讀取檔案并回顯結果。我只需要上面的功能。
至今:
<php?>
$logs = File::get('logs.txt');
$lines=explode("\n", $logs);
echo $lines['0'];
但這僅向我顯示了第一行。
uj5u.com熱心網友回復:
方法一
假設您使用 $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
方法二
- 以
<div>塊作為緩沖區開始 - 回圈日志檔案并用于
</div><div>替換任何空白行(否則將讀取的行復制到緩沖區) - 讀取檔案后,輸出緩沖區和一個
</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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/506669.html
