读取特定文件夹中的所有txt文件,并将所有内容写入一个txt文件中

时间:2015-02-22 06:40:37

标签: php file

我尝试从文件夹中读取所有*.txt个文件,并将每个文件中的所有内容写入另一个txt文件。但不知何故,它只在txt文件中写入一行。

我尝试使用fwrite()file_put_contents(),但都没有效果。

这是我的代码:

<?php

    $dh = opendir('/Applications/XAMPP/xamppfiles/htdocs/test/');

    while($file = readdir($dh)) {
        $contents = file_get_contents('/Applications/XAMPP/xamppfiles/htdocs/test/' . $file);
        $dc = array($contents);   
    }

    file_put_contents('content.txt', $dc);

?>

2 个答案:

答案 0 :(得分:7)

这应该适合你:

(这里我在glob()的目录中获取所有* .txt文件。之后我使用foreach循环遍历每个文件并使用file_get_contents()获取每个文件的内容并放入使用file_put_contents()

将内容放入目标文件中
<?php

    $files = glob("path/*.txt");
    $output = "result.txt";

    foreach($files as $file) {
        $content = file_get_contents($file);
        file_put_contents($output, $content, FILE_APPEND);
    }

?>

答案 1 :(得分:1)

试试这个

$contents = array();
$line = file(/*next file in dir*/);
foreach($lines as line){
   array_push($line, $contents);
}
//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;