php fgets 爆炸显示 "Array." 而不是 $array

php fgets explode shows "Array." instead of $array

我正在尝试将纯文本日志文件(无自动换行)转换为更具可读性的内容。 php-文件

<?php
    $log = fopen("/home/raspi/scripts/logs/test.log", "r");

    while (!feof($log)){

    $arrM = explode("|",fgets($log));

    echo "$arrM . <br>";
        }
    fclose($log)
?>

只要日志文件中有 |,php 脚本就会在输出中将其更改为 <br>。 但是,当打开 php 文件时,我得到的只是 Array . Array .

日志文件的内容 Sachen|Enter|nochmal Enter|Und schon wieder Enter。我是初学者,开始阅读有关 fopen 和 explode 的内容。以为这正是我所需要的,但出了点问题......?提前致谢:)

使用echo "<pre>";print_r($arrM);

原因,如果在 echo 中打印了一个数组,PHP 将显示数组,因此您最好看看 print_r 中发生了什么,因此您可以访问变量,或将其放入循环。

问题是你不能用echo输出一个数组,你需要循环 foreach ($arrM as $row) echo $row; 或使用 var_dump($arrM) 替代 'developer-output' 或 print_r($arrM)

使用 print_r() 打印数组(开发人员输出)

<?php
$log = fopen("/home/raspi/scripts/logs/test.log", "r");

while (!feof($log)){

    $arrM = explode("|",fgets($log));

    //echo "$arrM . <br>";
    print_r($arrM);
}
fclose($log)
?>

echo 打印一个或多个字符串

<?php
$log = fopen("/home/raspi/scripts/logs/test.log", "r");

while (!feof($log)){

   $arrM = explode("|",fgets($log));

   //echo "$arrM . <br>";
   foreach($arrM as $string){
       echo $string . '<br>';
   }
}
fclose($log)
?>