php 将子目录的内容写入单独的文本文件

标签 php

我正在尝试列出子目录中的文件并将这些列表写入单独的文本文件中。

我设法获取目录和子目录列表,甚至将所有文件写入文本文件。

我似乎无法摆脱我正在创建的循环。我要么最终得到一个文本文件,要么第二个+文件也包含所有前面的子目录内容。

我需要实现的是:

  • 目录 A/AA/a1.txt,a2.txt >> AA.log
  • 目录 A/BB/b1.txt,b2.txt >> BB.log
  • 等等

希望这是有道理的。

我找到了 PHP SPL RecursiveDirectoryIterator RecursiveIteratorIterator retrieving the full tree 中描述的 recursiveDirectoryIterator 方法是很大的帮助。然后,我使用 for 和 foreach 循环来迭代目录,写入文本文件,但我无法将它们分成多个文件。

最佳答案

很可能您没有过滤掉目录 ... .

$maindir=opendir('A');
if (!$maindir) die('Cant open directory A');
while (true) {
  $dir=readdir($maindir);
  if (!$dir) break;
  if ($dir=='.') continue;
  if ($dir=='..') continue;
  if (!is_dir("A/$dir")) continue;
  $subdir=opendir("A/$dir");
  if (!$subdir) continue;
  $fd=fopen("$dir.log",'wb');
  if (!$fd) continue;
  while (true) {
    $file=readdir($subdir);
    if (!$file) break;
    if (!is_file($file)) continue;
    fwrite($fd,file_get_contents("A/$dir/$file");
  }
  fclose($fd);
}

关于php 将子目录的内容写入单独的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063191/

相关文章:

PHP MySQL从GPS获取半径用户位置的位置

PHP fatal error : Cannot re-assign $this

php - 给定平均值后如何对加权五星分布进行逆向工程?

php - 我被困在 mysql 中的一个查询上

php - 我想更新两个表中的值

javascript - 用facebook做ajax功能

php - 从 $_POST 值创建数组

php - 上传表单中的空字节注入(inject)

java - 如何从 PHP 上的可运​​行 jar 获取输出

php - 在 laravel 中使用强制 url 缓存网络路由