Artikel ini membawa anda pengetahuan yang berkaitan tentang PHP+csv terutamanya cara menulis berjuta-juta data ke dalam csv melalui fail skrip dalam PHP. Saya harap ia akan membantu anda. Semua orang membantu.
Keperluan:
Berjuta-juta data yang ditulis ke csv.
Kerangka:
N Rangka kerja lama bertahun-tahun yang lalu tidak dapat ditemui di Baidu, jadi kaedah penulisannya lebih dekat dengan yang asal
Analisis:
Jumlah data terlalu besar dan tidak boleh ditulis ke muat turun csv menggunakan permintaan penyemak imbas, jadi tulis skrip untuk mendapatkan
Kod pseudo:
//xxx - 根据自己项目替换 //调取脚本文件 exec(xxx); //脚本文件 //设置执行时间和内存 set_time_limit(0); ini_set('memory_limit', '128M'); //循环获取 $id = 0; $data = 'xxx'.'\n';//表头 while(true){ //SQL $list = xxx WHERE id > $id ORDER BY id ASC LIMIT 10000; //每次取1w防止数据库压力大,根据sql来,我这个有联表, if(empty($list)){ break; } foreach($list as $row){ $data .= '"' . $row['xxx'] . '",'; $data .= "\n"; $id = $row['id'];//更新最大id } //追加写入csv file_put_contents('xxx', mb_convert_encoding($data, 'gbk'),FILE_APPEND); unset($data);//基础不好不确定初始化能不能清内存就先unset了 $data = '';//初始化 }
Pada dasarnya, ia ditulis dalam kelompok. beribu-ribu data, memori $data akan melebihinya Di samping itu, jika terdapat lebih daripada satu juta data Jika ya, anda perlu mengeksport fail mengikut fail Excel tidak menyokong pembukaan lebih daripada 1048576 baris Secara teori, anda boleh menambah $ parameter all_count untuk mengira jumlah pertanyaan semasa Jika melebihi satu juta, tambah fail baharu.
Jika terdapat kaedah atau pengoptimuman kod yang lebih baik, sila bincangkannya.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menulis berjuta-juta data ke dalam csv dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!