php - 将目录中的所有文件合并为一个文本文件

标签 php file

在 PHP 中,如何打开目录中的每个文件、所有文本文件并将它们全部合并到一个文本文件中。

我不知道如何打开目录中的所有文件,但我会使用 file() 命令打开下一个文件,然后使用 foreach 将每一行追加到数组中。 像这样:

$contents = array();
$line = file(/*next file in dir*/);
foreach($lines as line){
   array_push($line, $contents);
}

然后我会将该数组写入一个新的文本文件,如果目录中没有更多文件。

如果您有更好的方法,请告诉我。

或者,如果您可以帮助我实现我的解决方案,尤其是打开目录中的下一个文件,请告诉我!

最佳答案

OrangePill 的回答是错误的。

它返回一个空文件和一个编译错误。 问题是他使用了 fread(读取字节)而不是 fget(读取行)

这是有效的答案:

  //File path of final result
    $filepath = "mergedfiles.txt";

    $out = fopen($filepath, "w");
    //Then cycle through the files reading and writing.

      foreach($filepathsArray as $file){
          $in = fopen($file, "r");
          while ($line = fgets($in)){
                print $file;
               fwrite($out, $line);
          }
          fclose($in);
      }

    //Then clean up
    fclose($out);

    return $filepath;

尽情享受吧!

关于php - 将目录中的所有文件合并为一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972355/

相关文章:

c - 在 Netbeans 中运行时观看文件内容

file - 如何创建像日志文件一样的文件,当更新此日志文件时,副本文件也会更新?

android - 从通知打开文件

php file_get_contents 阿拉伯字符

c++ - 在 Windows 中使用 UTF8 字符串打开文件名

php - 在 MYSQL 中创建表不起作用

php - 路由资源在 Laravel 8.x 中不起作用

php - SELECT id FROM table_name WHERE column = $变量

php - 如何获取数据表中数据行的ID值?

php - UTF-8 和 PHP,mbstring.func_overload 不起作用