(PHP 4, PHP 5)
fgetcsv — Pobiera linię ze wskanika pliku i przetwarza na pola CSV
Działa podobnie do fgets() tylko, że fgetcsv() przetwarza odczytaną linię na pola w formacie CSV i zwraca tablicę zawierającą odczytane pola.
Ważny uchwyt pliku, poprawnie otwartego za pomocą fopen(), popen() lub fsockopen().
Musi być większy niż najdłuższa linia (w znakach), która znajduje się w pliku CSV (wliczając znaki końca lini). Stał się opcjonalny w PHP 5. Opuszczenie tego parametru (lub ustawienie go na 0 w PHP 5.0.4 lub późniejszym) spowoduje, że maksymalna długość lini nie jest limitowana, co jest nieznacznie wolniejsze.
Ustawia delimeter (tylko jeden znak) pól. Domyślnie przecinek.
Ustawia znak ograniczający pole. Domyślnie jest to cudzysłów. Dodano w PHP 4.3.0.
Ustawia znak ucieczki (tylko jeden znak). Domyślnie jest to odwrotny ukośnik (\)
Zwraca indeksowaną tablicę zawierającą odczytane pola.
Informacja: Pusta linia w pliku CSV zostanie zwrócona jako tablica składająca się z pojedynczego pola null i nie zostanie potraktowana jako błąd.
Informacja: Jeśli PHP niewłaściwie rozpoznaje znaki końca linii podczas odczytu plików stworzonych lub znajdujących się na komputerach Macintosh, problem może rozwiązać włączenie dyrektywy konfiguracyjnej auto_detect_line_endings .
fgetcsv() zwraca FALSE w przypadku błędu, włączając w to koniec pliku.
Wersja | Opis |
---|---|
5.3.0 | Dodano parametr ucieczka |
4.3.5 | fgetcsv() stał się bezpiecznym dla danych binarnych |
4.3.0 | Dodano parametr ogranicznik |
Przykład #1 fgetcsv() przykład - Odczyt i wyświetlenie całej zawartości pliku CSV
<?php
$row = 1;
$uchwyt = fopen ("test.csv","r");
while (($data = fgetcsv($uchwyt, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num pól w lini $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose ($uchwyt);
?>
Informacja: Ustawienia lokale są brane pod uwagę przez tę funkcję. Jeśli LANG jest ustawione na np. en_US.UTF-8, pliki z jedno bajtowym kodowaniem zostaną nieprawidłowo odczytane przez funkcję.