Разделение циклы по разделам

57
4

У меня есть большой текстовый файл около 25 тыс. Строк... Мне нужно разделить их на 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)

}

?>

теперь мне нужно поставить первые 2000 строк в 1.txt, а затем следующие 2000 строк в 2.txt и так далее.

спросил(а) 2014-02-16T16:21:00+04:00 6 лет, 8 месяцев назад
1
Решение
70

Я думаю, вы можете зациклиться на вашем массиве строк и подсчитать свой цикл, чтобы вы могли изменить имя файла в соответствии с вашими необходимыми строками, как следует

$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;
}
}

ответил(а) 2014-02-16T16:34:00+04:00 6 лет, 8 месяцев назад
71

Благодарю. Я думаю, что вы можете использовать команду linux split как это.


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

ответил(а) 2014-02-16T18:03:00+04:00 6 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема