Forum und email
fgetcsv

fgetcsv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

fgetcsv -- Pobiera linię ze wskanika pliku i przetwarza na pola CSV

Opis

array fgetcsv ( resource uchwyt [, int długość [, string delimiter [, string ogranicznik]]] )

uchwyt

Ważny uchwyt pliku, poprawnie otwartego za pomocą fopen(), popen() lub fsockopen().

długość (opcjonalny)

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.

delimiter (opcjonalny)

Ustawia delimeter (tylko jeden znak) pól. Domyślnie przecinek.

ogranicznik (opcjonalny)

Ustawia znak ograniczający pole. Domyślnie jest to cudzysłów. Dodano w PHP 4.3.0.

Działa podobnie do fgets() tylko, że fgetcsv() przetwarza odczytaną linię na pola w formacie CSV i zwraca tablicę zawierającą odczytane pola.

fgetcsv() zwraca FALSE gdy wystąpi błąd, włączając w to koniec pliku.

Notatka: 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.

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);
?>

fgetcsv() jest bezpieczna binarnie od PHP 4.3.5

Notatka: 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ę.

Notatka: W przypadku problemów z rozpoznawaniem znaków końca linii przez PHP przy czytaniu plików stworzonych lub znajdujących się na komputerach Macintosh, może pomóc włączenie dyrektywy konfiguracji auto_detect_line_endings.

Patrz także: explode(), file(), pack() i fputcsv().