[英]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
<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
日志文件:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.