读取文件内容并作为数组存储

时间:2016-06-27 12:19:16

标签: php html listview

我想从文件中读取日志并在管理员面板中将其显示为列表。我非常确定这段代码应该可行,但显然它并没有。循环不会在列表中打印任何内容,循环上方的两行只打印文件中的第一行。我想问题在于构造数组namespace。由于这个项目是我第一次使用PHP(通常我使用的是C),所以不要判断。

log

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

而不是

$log=fopen("file.log", "r");

使用

$log=file("file.log");

同时将while循环更改为

foreach($log as $logline) {
    // print $logline the way you want
}

您的代码无效的原因是fopen返回文件的句柄,您需要使用特殊函数:fread, fclose, feof等。file()函数读取将整个文件放入一个数组(每个元素都是一行),因此对于中小型文本文件来说,这是一种理想的方式。

答案 1 :(得分:0)

fopen返回文件处理程序,而不是数组。要逐行阅读,您可以在while循环中使用fgets

while (($line = fgets($log)) !== false) {
    $asdf[$i] = sprintf ("<option >%s</option>", $line);
}

答案 2 :(得分:0)

而不是一会儿,也许使用foreach?

while ($log[$i]!=null) {
              $asdf[$i] = sprintf ("<option >%s</option>", $log[$i]);
              echo $asdf[$i];
              $i++; //this loop is the problem, doesn't print anything.
            }

=&GT;

foreach ($logs as $log) {
              $asdf[$i] = sprintf ("<option >%s</option>", $log);
              echo $asdf[$i];
              $i++; //this loop is the problem, doesn't print anything.
            }

这样的东西?