Запись сотен записей в файлы

Я хочу непрерывно писать сотни записей в разных файлах с time(),

Этот код работает хорошо, но записывает только 1 запись в каждый файл. Как я могу это сделать?

$i=0;
$file= time();
foreach ($dizi as $fields) {
$i++;
if($i%100==0){
$fp = fopen($file.'.csv', 'w');
}
fputcsv($fp, $fields,';','"');
fclose($fp);
}

1

Решение

Я считаю, что ваше поведение происходит, потому что вы закрываете файл после первой записи и никогда не открываете его снова, пока не получите 100-ую запись.

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

Попробуйте что-то вроде этого:

$i = 0;
$fp = fopen(time(). '.csv', 'w');
foreach($dizi as $fields) {
$i++;
if ($i % 100 == 0) {
fclose($fp);
$fp = fopen(time(). '.csv', 'w');
}
fputcsv($fp, $fields,';','"');
}
fclose($fp);

Обратите внимание, что если $dizi пуст весь этот код, можно избежать или будет создан пустой файл.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]