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
)