使用循环从多个文件夹中读取文本文件

时间:2014-01-09 14:37:07

标签: php

我正在创建一个php页面,它将使用循环从目录中的每个文件夹中读取某个.txt文件。我的目录结构如下所示:

根/

  • Folder1 - > data.txt(值为“1”)
  • Folder2 - > data.txt(值为“2”)
  • foldernames.txt(每行都有值“Folder1”和“Folder2”。)
  • readfolderdata.php

readfolderdata.php

<?php
$file = "foldernames.txt";
if ( file_exists( $file )) {
$page = join("",file("$file"));
$folder = explode("\n", $page);
for($x=0;$x<count($folder);$x++){

    if($folder[$x]!=''){
        $txtfile = $folder[$x].'/data.txt';
        $handle = fopen($txtfile, 'r');
        $data = fread($handle,filesize($txtfile));
        fclose($handle);
        echo $folder[$x]."<br>".$data; 
        }
}
?>

现在上面的代码只从第二个文件夹Folder2中读取data.txt。在读取第一个文件夹Folder1中的data.txt时出现错误“无法打开流”,尽管Folder1中的data.txt存在。如果我从foldernames.txt中删除“ Folder2 ”,它可以正常工作,当有2个或更多文件夹时会发生错误。谁知道这个问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

$file = "foldernames.txt";
$lines = file($file, FILE_IGNORE_NEW_LINES);
foreach($lines as $line) // Look through lines, $line is now folder name
{
    $value = file_get_contents($line."/data.txt");
    // Do whatever you want with your value, example echo:
    echo $value;
}

此代码回显所有data.txt值。