PHP larges dosyalarını okumak için en iyi yolu?

4 Cevap php

Ben 10 ile 20 Meg olabilir çizgi wich tarafından CSV dosyaları satır okumak zorunda. dosyası () işe yaramaz ;-) ve ben quickiest yolunu bulmak zorunda.

I have try with fgets(), wich run fine, but I don't know if it read a small block each time I call it, or if it cache a bigger one and optimize file I/O. Do I have to try the fread() way, parsing EOL by myself?

Thanks Cedric

4 Cevap

Sen fgetcsv() mümkünse kullanıyor olmalı.

Aksi halde, () fgets her zaman vardır.

stream_get_line görünüşte büyük dosyalar için fgets daha verimlidir. Eğer okumak için bir mantıklı maksimum uzunluğu belirtirseniz ben size endişe gibi görünüyor gibi, PHP bir satır okumak için 'öncesinde oku' olurdu herhangi bir neden görmüyorum.

Eğer CSV'leri kullanmak istiyorsanız o fgetcsv biraz daha mantıklı biçimde sonuç dönecektir.

Sen fgetcsv(), otomatik bir diziye koma Ayrılmış hattını ayrıştırır bir göz olmalıdır.

Zamanı verimliliğine gelince, hiçbir fikrim yok. Size daha sonra işlemek için bekliyoruz boyutta bir dosya ile, tercihen hızlı bir test çalıştırmak zorunda olacak. Fget Ama eğer sürpriz olurdu?? ve fput?? fonksiyonları I / O optimize değildi.