fail - php tentang operasi fail - baca satu baris, proses satu baris dan kemudian padam baris itu
PHP中文网
PHP中文网 2017-06-26 10:49:01
0
3
941

1 Kini terdapat fail 300M Data di dalamnya perlu dibaca baris demi baris dan diproses untuk setiap baris (ia tidak boleh dijadikan idempoten). Tetapi saya takut bahawa sistem akan ditutup semasa pemprosesan, dan saya tidak tahu baris mana yang hendak dibaca lagi, saya takut baris yang telah diproses sebelum ini akan diproses semula. yang saya fikirkan sekarang ialah membaca satu baris, memproses satu baris, dan memadam baris dengan serta-merta. Mari lihat jika mana-mana pakar mempunyai penyelesaian yang baik.
//Saya ingin membaca satu baris dan memadam satu baris. Atau adakah penyelesaian yang lebih baik untuk mengelak daripada melaksanakan baris yang sama dua kali

$fp = fopen($fileName, "r");
if (!$fp) {
    return -1;
}
$max = 40960; //40k

while (!feof($fp)) {
    $line = fgets($fp, $max);
    }
PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
淡淡烟草味

Memandangkan ia ditetapkan untuk membaca baris demi baris, mengapa tidak menulis skrip untuk membahagikan fail kepada berbilang fail kecil (perhatikan penamaan, seperti perintah Linux 中的 split), dan kemudian tulis skrip untuk menggelungkan operasi membaca.

伊谢尔伦

Saya rasa anda boleh mencapai kesan yang anda inginkan dengan cara lain: anda boleh membaca baris, dan selepas memproses garisan, tambah simbol khas selepas garisan. Menggulung setiap baris akan memberitahu anda baris mana yang telah diproses. Jika program anda hang, apabila anda melaksanakannya semula, terus cari tempat terakhir di mana simbol khas muncul. Kemudian baris seterusnya di sini adalah tempat anda harus memulakan pelaksanaan.

ringa_lee

Tulis fail berasingan untuk merekodkan lokasi pemprosesan Anda juga boleh merekodkan nombor baris dan mengimbangi keseluruhan fail.

Menukar fail semasa membaca adalah terlalu perlahan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan