(PHP 4, PHP 5, PHP 7, PHP 8)
fgetcsv — Dosya tanıtıcısından CSV alanlarını çözümleyerek bir satır döndürür
$akım
,$uzunluk
= null
,$ayraç
= ",",$sınırlayıcı
= "\"",$öncelem
= "\\"Satırı okuyup CSV biçemindeki alanları bir dizi içinde döndürmesi dışında fgets() işlevi gibidir.
Bilginize:
Bu işlevde yerel ayarları hesaba katılır. Eğer
LANG
, örneğin,tr_TR.UTF-8
iseISO-8859-9
ile kodlanmış dosyaları bu işlev hatalı okuyacaktır.
akım
fopen(), popen()veya fsockopen() tarafından başarıyla açılmış geçerli bir dosyanın tanıtıcısı.
uzunluk
CSV dosyasındaki en uzun satırdan (satırsonu karakterleri dahil) daha
büyük bir değer içermelidir. Parçalara ayırma sınırlı bir alanda
gerçekleşmeyecekse, satır uzunluk
karakterden
oluşan parçalara bölünür.
Bu bağımsız değişkenin belirtilmemesi (veya PHP 8.0.0 ve sonrası için 0 veya
null
belirtilmesi) durumunda azami satır uzunluğu sınırlanmaz fakat
işlem yavaşlar.
ayraç
(separator
)İsteğe bağlı bu bağımsız değişken ile alan ayracı (tek baytlık bir karakter) belirtilir.
sınırlayıcı
(enclosure
)İsteğe bağlı bu bağımsız değişken ile alan sınırlayıcı (tek baytlık bir karakter) belirtilir.
öncelem
(escape
)
Belirtilmesi seçimlik olup önceleme karakteri (tek baytlık bir
karakter) belirtmekte kullanılır. Boş dizge (""
)
özel önceleme mekanizmasını iptal eder.
Bilginize: Genellikle bir
sınırlayıcı
karakter bir alanın içinde çiftlenerek öncelenir; ancak, öndeki karakterin yeriniöncelem
karakteri alabilir. Bu nedenle, öntanımlı""
karakteri ile\"
aynı anlama gelir.öncelem
karakterininsınırlayıcı
karakteri öncelemek dışında özel bir anlamı yoktur; kendisini de öncelemesi amaçlanmamıştır.
PHP 8.4.0 ve sonrasında, öncelem
öntanımlı
değerine bağlı olarak kullanım dışıdır. Açıkça ya konumsal olarak
ya da isimli bağımsız
değişkenler kullanılarak sağlanması gerekir.
When escape
is set to anything other than an empty string
(""
) it can result in CSV that is not compliant with
» RFC 4180 or unable to survive a roundtrip
through the PHP CSV functions. The default for escape
is
"\\"
so it is recommended to set it to the empty string explicitly.
The default value will change in a future version of PHP, no earlier than PHP 9.0.
Başarı durumunda okunan alanları içeren indisli bir
dizi, başarısızlık durumunda false
döner.
Bilginize:
CSV dosyasındaki boş bir satır tek bir null içeren bir dizi olarak döndürülür ve bir hata olarak ele alınmaz.
Bilginize: Eğer PHP'nin Macintosh bilgisayarlarda çalışırken veya bu bilgisayarlarda oluşturulmuş dosyalarla çalışırken satır sonlarını tanımamaması gibi bir sorunla karşılaşılaşılırsa, auto_detect_line_endings çalışma anı seçeneği etkin kılınarak bu sorun çözülebilir.
ayraç
veya sınırlayıcı
tek
bayt uzunlukta değilse ValueError istisnası
oluşur.
öncelem
tek bayt uzunlukta değilse veya boş dizge
ise ValueError istisnası oluşur.
Sürüm: | Açıklama |
---|---|
8.4.0 |
öncelem bağımsız değişkeninin öntanımlı
değerine güvenmek artık kullanım dışıdır.
|
8.0.0 |
uzunluk artık null olabiliyor.
|
7.4.0 |
öncelem bağımsız değişkeni özel önceleme
mekanizmasını iptal etmek için boş dizge kabul ediyor.
|
Örnek 1 - Bir CSV dosyasının okunup basılması
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $row satırındaki $num alan: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>