PHP fgetcsv() fonksiyonu
Tanım ve Kullanım
fgetcsv() fonksiyonu dosya işaretçisinden bir satır okur ve CSV alanlarını çözümler.
İle fgets() Benzer, ancak fgetcsv() okunan satırı çözümleyip CSV formatındaki alanları bulur ve bu alanları içeren bir dizi döner.
fgetcsv() hata durumunda FALSE döner, dosya sonunda da döner.
Yorum:PHP 4.3.5'ten itibaren, fgetcsv() operasyonu ikili güvenli işlemlerdir.
Sözdizimi
fgetcsv(file,length,separator,enclosure)
Parametre | Açıklama |
---|---|
file | Zorunludur. Kontrol edilecek dosyayı belirtir. |
length |
Seçmeli. Satırın maksimum uzunluğunu belirtir. CVS dosyası içindeki en uzun satırdan büyük olmalıdır. PHP 5'te bu parametre seçmeli gereklidir. PHP 5'ten önce zorunludur. Eğer bu parametreyi göz ardı edersek (PHP 5.0.4 ve sonraki sürümlerde 0 olarak ayarlanır), uzunluk sınırlaması yoktur, ancak çalışma verimliliğini etkileyebilir. |
separator | Opsiyonel. Alan ayırıcı karakteri (sadece bir karakter izin verilir), varsayılan değer virgüldür. |
enclosure |
Opsiyonel. Alan çevreleyici karakter (sadece bir karakter izin verilir), varsayılan değer çift tırnaklardır. Bu parametre PHP 4.3.0'da eklendi. |
İpuçları ve Yorumlar
Yorum:CSV dosyasındaki boş satırlar, tek null alan içeren bir dizi olarak döndürülür ve hata olarak sayılmaz.
Yorum:Bu fonksiyon dil ayarlarına duyarlıdır. Örneğin, LANG ayarı en_US.UTF-8 olarak ayarlandığında, tek baytlı kodlama dosyaları okuma hatası verebilir.
Yorum:PHP'nin dosyaları okurken Macintosh dosya satır sonlandırma işaretlerini tanıyamadığı durumlarda auto_detect_line_endings çalışma zamanı yapılandırma seçeneğini etkinleştirebilirsiniz.
Örnek
Örnek 1
<?php $file = fopen("contacts.csv","r"); print_r(fgetcsv($file)); fclose($file); ?>
CSV Dosyası:
George, John, Thomas, USA James, Adrew, Martin, USA
Çıktı benzeri:
Dizi ( [0] => George [1] => John [2] => Thomas [3] => USA )
Örnek 2
<?php $file = fopen("contacts.csv","r"); while(! feof($file)) { print_r(fgetcsv($file)); } fclose($file); ?>
CSV Dosyası:
George, John, Thomas, USA James, Adrew, Martin, USA
Çıktı benzeri:
Dizi ( [0] => George [1] => John [2] => Thomas [3] => USA Dizi ( [0] => James [1] => Adrew [2] => Martin [3] => USA )