将一百条记录写入文件

时间:2018-10-18 23:47:24

标签: php file-writing fputcsv

我想在以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 个答案:

答案 0 :(得分:0)

我相信您的行为正在发生,因为您在第一条记录后关闭了文件,并且直到到达第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为空,则可以避免整个代码,否则将创建空文件。