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

标签 php string file text

我正在尝试使用 PHP 将一个目录中的所有文件合并到一个文本文件中。

所有文件都是文本文件,每行一个单词。

我只需要将它们全部合并到一个包含所有单词的文本文件中,每行一个。

文件扩展名是数字 0-5 的 5 倍数(.10、.15、.20、.25)和 .txt 文件。

这是我目前所拥有的,但它只会生成一个空文本文件。

<?php
$files = glob("./*.??");
$out = fopen("listTogether.txt", "w");
foreach($files as $file){
    $in = fopen($file, "r");
    while($line = fread($in)){
       fwrite($out, $line);
       echo "writing file";
    }
    fclose($in);
}
fclose($out);
?>
<!Doctype HTML>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>file merger</title>
</head>
<body>
    <p>Doo Wop</p>
</body>
 </html>

最佳答案

问题是读/追加循环没有正确读取。如果您不处理非常大的文件,那么您可以将其简化为

foreach ($files as $file) {
    fwrite($out, file_get_contents($file));
}

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

相关文章:

php - Yii2:如何使用 POST 方法重定向?

php - MYSQL 查询在 1 个查询中包含我需要的 2 个内容

php - 这些注释中的 @ 是什么意思?

file-upload - PHP 文件上传大于 upload_max_filesize 和错误

c++ - 当 substring 只是一个换行符时,string.find(substring) 函数返回什么?

cocoa - 如何确保 NSString 路径(文件名)安全

Java - 使用列表的特定元素

php - 如何通过流式传输文件使用 PHP、curl 和 HTTP POST 上传文件?

java - 如何从文件列表中搜索并计算模式?

C++ Win32 API 删除带进度条的文件