Fonction fgetcsv() PHP

Définition et utilisation

La fonction fgetcsv() lit une ligne à partir du pointeur de fichier et analyse les champs CSV.

Avec fgets() De manière similaire, mais différemment, fgetcsv() analyse la ligne lue et recherche les champs au format CSV, puis renvoie un tableau contenant ces champs.

fgetcsv() renvoie FALSE en cas d'erreur, y compris à la fin du fichier.

Remarque :Depuis PHP 4.3.5, l'opération de fgetcsv() est sécurisée en mode binaire.

Syntaxe

fgetcsv(file,length,separator,enclosure)
Paramètres Description
file Obligatoire. Définit le fichier à vérifier.
length

Optionnel. Définit la longueur maximale d'une ligne. Doit être supérieur à la plus longue ligne du fichier CVS.

Ce paramètre est optionnel dans PHP 5. Il était obligatoire avant PHP 5.

Si vous ignorez ce paramètre (paramètre définissant à 0 dans les versions de PHP 5.0.4 et suivantes), la longueur n'est pas limitée, bien que cela puisse affecter l'efficacité de l'exécution.

separator Optionnel. Définir le délimiteur des champs (un seul caractère autorisé), la valeur par défaut est la virgule.
enclosure

Optionnel. Définir les caractères d'encapsulation des champs (un seul caractère autorisé), la valeur par défaut est la guillemet double.

Ce paramètre a été ajouté dans PHP 4.3.0.

Avis et commentaires

Remarque :Les lignes vides dans le fichier CSV seront retournées sous forme d'un tableau contenant un seul champ null, sans être considérées comme une erreur.

Remarque :Cette fonction est sensible aux réglages de la région. Par exemple, si LANG est réglé sur en_US.UTF-8, les fichiers codés en mono-octet peuvent entraîner des erreurs de lecture.

Remarque :Si PHP ne peut pas reconnaître le symbole de fin de ligne des fichiers Macintosh lors de la lecture de fichiers, vous pouvez activer l'option de configuration runtime auto_detect_line_endings.

Exemple

Exemple 1

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

Fichier CSV :

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

Sortie similaire :

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

Exemple 2

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

Fichier CSV :

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

Sortie similaire :

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