Forum und email

fgetcsv

(PHP 4, PHP 5)

fgetcsv — Kinyer egy sort a fájl pointerből és elemzi a CSV mezőket

Leírás

array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure ]]] )

handle
Egy valódi fájl pointer, amit sikereseren nyitottak meg az fopen(), popen() vagy fsockopen() függvénnyel.
length (Opcinális)
Nagyobbnak kell lennie a leghosszabb sor hosszánál (karakterek számában), ami megtalálható a CVS fájlban (sorvégi karaktereket figyelembe véve). A PHP 5-ben opcinálissá vált. Ezt a paramétert kihagyva (vagy 0-ra állítva PHP 5.0.4-től) a legnagyobb sorhosszúság nem lesz korlátozva, ami feltűnően lassabb.
delimiter (Opcinális)
Beállítja a mezőelválasztó karaktert (csak egy karakter). Alapértelmezettként ez vesszó (,).
enclosure (Opcinális)
Beállítja a mezőhatároló karaktert (csak egy karakter). Alapértelmezettként idézőjel ("). A PHP 4.3.0-ban került a nyelvbe.

Hasonló a fgets() függvényhez, kivéve azt, hogy a fgetcsv() parses the line it reads for fields in CSV format and returns an array containing the fields read.

A fgetcsv() függvény FALSE-szal tér vissza hiba esetén, akkor is, ha a fájl végén van.

Note: A CSV fájlban szereplő üres sorokat is beolvassa és így a kapott tömbben ehhez a sorhoz tartozó mezőnek az értéke null lesz, és a PHP nem jelez hibát.

Example#1 Egy teljes CSV fájl tartalmának beolvasása és kiírása

<?php
$row 
1;
$handle fopen("test.csv""r");
while ((
$data fgetcsv($handle1000",")) !== FALSE) {
  
$num count($data);
  echo 
"<p> $num fields in line $row: <br /></p>\n";
  
$row++;
  for (
$c=0$c $num$c++) {
      echo 
$data[$c] . "<br />\n";
  }
}
fclose($handle);
?>

A fgetcsv() függvény binary safe a PHP 4.3.5 óta.

Note: A helyi beállítás (locale setting) ha a függvény működésére. Ha a LANG értéke pl.: en_US.UTF-8, az egy-bájt kódolású fájlokat rosszul fogja ez a függvény beolvasni.

Note: Ha problémád akadna PHP-ben Machintosh gépen létrehozott szöveges fileokban a sorvégek olvasásával, valószínűleg be kell kapcsolnod az auto_detect_line_endings beállítást.

Lásd még: explode(), file(), pack() és fputcsv().