fgetcsv

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetcsvDosya tanıtıcısından CSV alanlarını çözümleyerek bir satır döndürür

Açıklama

fgetcsv(
    resource $akım,
    ?int $uzunluk = null,
    string $ayraç = ",",
    string $sınırlayıcı = "\"",
    string $öncelem = "\\"
): array|false

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 ise ISO-8859-9 ile kodlanmış dosyaları bu işlev hatalı okuyacaktır.

Bağımsız Değişkenler

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 karakterinin sınırlayıcı karakteri öncelemek dışında özel bir anlamı yoktur; kendisini de öncelemesi amaçlanmamıştır.

Uyarı

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.

Uyarı

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.

Dönen Değerler

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.

Hatalar/İstisnalar

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 Bilgisi

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.

Örnekler

Ö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);
}
?>

Ayrıca Bakınız