在 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/