fgetcsv
(PHP 4, PHP 5)
fgetcsv — Kinyer egy sort a fájl pointerből és elemzi a CSV mezőket
Leírás
- 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($handle, 1000, ",")) !== 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.