PHP - 如何打开文件并读取它们然后用每个文件写"x"行写新文件?

Jim*_*_Bo 2 php glob

我之前在这里发过这个问题,但没有回复.我可能做错了所以,这里再说一些细节.

目录中的文件名为1.txt,2.txt,3.txt等....下面的代码段进入该目录,打开读取它们的所有*,txt文件,删除欺骗并创建一个包含所有文件的文件独特的内容.(在这种情况下的名称).

$files = glob($dirname."/*.txt"); //matches all text files
    $lines = array();
    foreach($files as $file)
    {
    $lines = array_merge($lines, file($file, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES));
    }
    $lines = array_unique($lines);
    file_put_contents($dirname."/allofthem.txt", implode("\n", $lines));
    }
Run Code Online (Sandbox Code Playgroud)

以上作品对我很有用!感谢stackoverflow的大力帮助.

但是,我希望更进一步.

而不是一个大的重复免费"allofthem.txt"文件,我如何修改上面的代码来创建新数据最多为5oo行的文件?

他们需要进入一个新目录,例如$ dirname."/ done /".$ i.".txt"我已经尝试过计算循环,但我的努力没有奏效,最终只有一英里长.

我还尝试将500推入一个数组,增加到另一个数组并保存.没运气.我只是没有"得到"它.

同样,这位初学者需要一些专家帮助.提前致谢.

Dan*_*uis 5

根据代码获得行数组后,可以使用它将其分成500行的块array_chunk,然后将每个块写入自己的文件:

// ... from your code
$lines = array_unique($lines);

$counter = 1;
foreach (array_chunk($lines, 500) as $chunk)
{
  file_put_contents($dirname . "/done/" . $counter . ".txt", implode("\n", $chunk));
  $counter++;
}
Run Code Online (Sandbox Code Playgroud)