php fgets explode显示“数组”。而不是$ array

时间:2015-02-15 12:43:20

标签: php arrays fopen explode

我试图将纯文本日志文件(没有wordwrap)转换为更具可读性的东西。 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和爆炸的内容。认为这将是我需要的,但有些事情是错的......?在此先感谢:)

3 个答案:

答案 0 :(得分:3)

问题是您无法使用echo输出数组,您需要像 foreach ($arrM as $row) echo $row;var_dump($arrM)用于开发人员输出&#39;或print_r($arrM)

答案 1 :(得分:0)

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

原因,如果在echo中打印一个数组,PHP会向你显示数组,所以你最好看看print_r是什么,因此你可以访问变量,或者把它放在循环中。

答案 2 :(得分:0)

使用print_r()作为打印数组(developer-output)

<?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)
?>