PHP fgetcsv()-funktio

Määrittely ja käyttö

fgetcsv()-funktio lukee riviä tiedostopisteestä ja analysoi CSV-kentät.

Ja fgets() Samoin, mutta erona on, että fgetcsv() analysoi luettuna rivin ja löytää CSV-muotoiset kentät, ja palauttaa näitä kenttiä sisältävän taulukon.

fgetcsv() palauttaa FALSE virheiden tapauksessa, mukaan lukien tiedoston lopun kohta.

Kommentti:PHP 4.3.5:stä lähtien fgetcsv() operaatio on binaarisesti turvallinen.

Syntaksi

fgetcsv(file,length,separator,enclosure)
Parametri Kuvaus
file Pakollinen. Määrittää tarkistettavan tiedoston.
length

Valinnainen. Määrittää rivin enimmäispituuden. Se täytyy olla suurempi kuin CVS-tiedoston pisimmän rivin pituus.

PHP 5:ssä parametri on valinnainen. PHP 5:n ennen se oli pakollinen.

Jos parametria jätetään huomiotta (PHP 5.0.4:n jälkeen asetettu arvo on 0), pituus ei ole rajoitettu, mutta se voi vaikuttaa suorituskykyyn.

separator Valinnainen. Aseta kenttien erotin (sallitaan vain yksi merkki), oletusarvo on pilkku.
enclosure

Valinnainen. Aseta kenttien ympäröivä merkki (sallitaan vain yksi merkki), oletusarvo on lainausmerkit.

Tämä parametri lisättiin PHP 4.3.0:ssa.

Vinkit ja kommentit

Kommentti:Tyhjät rivit CSV-tiedostossa palautetaan yhden null-kentän sisältäväksi taulukoksi, eikä sitä katsota virheeksi.

Kommentti:Tämä funktio on herkkä alueasetuksille. Esimerkiksi, jos LANG asetetaan en_US.UTF-8, yksitellen koodatut tiedostot voivat aiheuttaa lukuvirheitä.

Kommentti:Jos PHP ei pysty tunnistamaan Macintosh-tiedostojen rivinvaihtomerkkejä lukiessaan tiedostoja, voit aktivoida auto_detect_line_endings suoritustilin asetuksen.

Esimerkki

Esimerkki 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

CSV-tiedosto:

George, John, Thomas, USA
James, Adrew, Martin, USA

Tulostus on samanlainen:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

Esimerkki 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

CSV-tiedosto:

George, John, Thomas, USA
James, Adrew, Martin, USA

Tulostus on samanlainen:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)