【问题标题】:Trying to echo contents of multiple text files while sorting the output by the file name - PHP尝试在按文件名排序输出时回显多个文本文件的内容 - PHP
【发布时间】:2012-04-27 21:49:13
【问题描述】:

我不是开发人员,但我是现在工作的默认开发人员。 :) 在过去的几周里,我在这里和其他网站上找到了很多我的答案,但是这个最新的问题让我难以置信。我知道这是一个简单的答案,但我没有向 Google 提出正确的问题。

首先...我必须使用文本文件,因为我无权访问数据库(我工作的地方都被锁定了)。

无论如何,我需要查看存储在那里的文本文件的目录,打开每个文件并显示少量文本,同时确保我显示的文本按文件名排序。

我已经关闭了,我知道...我终于设法弄清楚了排序,并且我知道如何读入目录并显示文件的内容,但是我有时间合并这两个概念结合在一起。

谁能提供一点帮助?使用现在的脚本,我可以毫无问题地回显排序的文件名。我认为会读取文件内容然后显示它的代码行只是回显换行符,而不是文件的内容。这是我目前得到的代码 - 它只是测试代码,所以我可以让功能正常工作。

<?php
$dirFiles = array();
if ($handle = opendir('./event-titles')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $dirFiles[] = $file;
        }
    }
    closedir($handle);
}
sort($dirFiles);
foreach($dirFiles as $file)
{
    $fileContents = file_get_contents($file);//////// This is what's not working
    echo $file."<br>".$fileContents."<br/><br/>";
}
?>

帮助? :)

戴夫

【问题讨论】:

  • 顺便说一句,如果我在输入代码时弄乱了原帖,我深表歉意。
  • file_get_contents 无法仅通过文件名找到文件,您必须使用 @Greg 在他的回答中建议的 file_get_contents("./event-titles/$file")

标签: php sorting file-get-contents opendir readdir


【解决方案1】:

$files = scandir('./event-titles') 将返回一个按文件名排序的文件名数组。然后你可以做

foreach($files as $file)
{
    $fileContents = file_get_contents('./event-titles/'.$file);
    echo $file."<br/>".$fileContents."<br/><br/>";
}

请注意,我在 file_get_contents 调用中使用目录名,因为文件名本身会导致 file_get_contents 查找当前目录,而不是您在 scandir 中指定的目录。

【讨论】:

  • 出于某种原因,这给了我一个空白的回报。我理解它背后的逻辑,不管你信不信。 ; ) (你不认识我,但如果你认识我,你不会相信我明白这一点。;))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多