按部分划分循环

时间:2014-02-16 13:21:16

标签: php loops foreach

我有一个大约25k行的大文本文件...我需要将它们分成2000并将每个2000放入文本文件...到目前为止我已经有了代码。

<?php

$lines = file("largefile.txt", FILE_IGNORE_NEW_LINES);

$i = 1;
foreach($lines as $lol)
{

//now i need to put first 2000 lines in 1.txt and then next 2000 lines in 2.txt
file_put_contents($i".txt", $lol . PHP_EOL, FILE_APPEND)

}

?>

现在我需要在1.txt中放置前2000行,然后在2.txt中放下2000行等等。

2 个答案:

答案 0 :(得分:2)

我认为您可以在您的行数组中循环并计算您的循环,因此您可以根据所需的总行数更改文件名,如下所示

$i=1;
$o=0;
for($u=0;$u<count($lines);$u++)
{
    if($o<2000)
    {
         file_put_contents($i".txt", $lines[$u] . PHP_EOL, FILE_APPEND);
         $o++;
    } else {
        $i++;
        file_put_contents($i".txt", $lines[$u] . PHP_EOL, FILE_APPEND);           
        $o=1;
    }            
}

答案 1 :(得分:2)

感谢。 我想你可以像这样使用linux命令。

<?php
    exec("split largefile.txt -l 2000");
?>