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 )