【发布时间】:2014-01-20 15:42:08
【问题描述】:
如何根据行数将一个文本文件拆分为单独的文件?例如文本文件有 10000 行,我想要 5 个单独的文件,每个文件 2000 行。
我试过这个:Split a text file in PHP
基本上我想要一个类似的解决方案,但通过计算行数而不是字节数。
谢谢!
--编辑-- 我按照@user1477388 的提示让它工作了
<?php
// get file contents into string
$stringData = file_get_contents('MyTextFile.txt');
// split by newline
$arrayData = split("\n", $stringData);
$fileCount = 0;
// loop through arrayData
for ($i = 0; $i < count($arrayData); $i++)
{
$file = 'myFileName';
// for every 2000 lines, create a new file
if ($i % 2000 == 0)
{
$fileCount++;
}
file_put_contents($file . $fileCount . '.txt', $arrayData[$i]."\n", FILE_APPEND | LOCK_EX);
}
?>
【问题讨论】:
-
不能使用
split或csplit命令吗? -
到目前为止你做了什么?
-
@MarkusMalkusch 他明确表示“我试过这个:”...
-
您是否将一行定义为由换行符分隔的一系列字符?如果是这样,也许每 2000 个都算一次……
-
是的,你会想看看
split,就像 Basile 说的那样。查看md1.php.net/split,您将通过\r\n拆分您的字符串(文本文档),这将为您提供一个可以循环的数组。然后,在循环时,您可以说每循环 2000 次,创建一个新文件。这很简单。