Forum und email

fgetcsv

(PHP 4, PHP 5)

fgetcsv — Renvoie la ligne courante et cherche les champs CSV

Description

array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure ]]] )

handle
Un pointeur valide sur un fichier ouvert avec fopen(), popen() ou fsockopen().
length (Optionnel)
Doit être plus grand que la plus grande ligne (en terme de caractères) à lire dans le fichier (y compris le caractère de fin de ligne). Ce paramètre est optionnel depuis PHP 5. Omettre ce paramètre (ou le définir à 0 en PHP 5.0.4 et suivant) fait que la longueur maximale de la ligne n'est pas limitée, ce qui est légèrement plus lent.
delimiter (Optionnel)
Spécifie le séparateur (un seul caractère). Par défaut, c'est la virgule.
enclosure (Optionnel)
Spécifie le caractère de délimitation (un seul caractère). Par défaut, c'est les guillemets doubles. Ce paramètre a été ajouté en PHP 4.3.0.

fgetcsv() est identique à fgets() mais fgetcsv() analyse la ligne qu'il lit et recherche les champs CSV, qu'il va retourner dans un tableau les contenant. Le délimiteur de champs delimiter est la virgule, à moins que vous ne fournissiez un troisième argument.

Note: Le paramètre enclosure a été ajouté en PHP 4.3.0.

handle doit être un pointeur valide, et avoir été correctement ouvert par fopen(), popen(), ou fsockopen().

length doit être plus grand que la plus grande ligne trouvée dans un fichier CSV (en comptant les caractères de fin de ligne). Il est devenu optionnl en PHP 5.

fgetcsv() retourne FALSE en cas d'erreur, ou en cas de fin du fichier.

Note: Une ligne vide dans un fichier CSV sera retournée sous la forme d'un tableau contenant la valeur NULL et ne sera pas traitée comme une erreur.

Example#1 Lit et affiche le contenu d'un fichier CSV avec fgetcsv()

<?php
$row 
1;
$handle fopen("test.csv""r");
while ((
$data fgetcsv($handle1000",")) !== 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);
?>

fgetcsv() a été protégé des données binaires depuis PHP 4.3.5.

Note: La définition des locales entre en jeux avec cette fonction. Si LANG vaut, e.g. en_US.UTF-8, les fichiers encodés sur un octet sont mal lus par cette fonction.

Voir aussi explode(), file(), pack() et fputcsv().