FGETCSV |
Fichier : Demande le CSV |
---|---|
PHP 3.0.8+ |
Syntaxe
function fgetcsv($handle); | PHP Version 3.0.8+ |
function fgetcsv($handle, $length); | PHP Version 3.0.8+ |
function fgetcsv($handle, $length, $delimiter); | PHP Version 3.0.8+ |
function fgetcsv($handle, $length, $delimiter, $enclosure); | PHP Version 4.3.0+ |
function fgetcsv($handle, $length, $delimiter, $enclosure, $escape); | PHP Version 4.3.0+ |
Paramètres
Nom | Description |
---|---|
$handle | Ce paramètre permet d'indiquer la ressource de fichier Handle associé au fichier à lire. Ce Handle est retourné par une fonction fopen(), popen() ou fsockopen(). |
$length | Ce paramètre permet d'indiquer le nombre d'octets à lire s'il y a assez de données. |
$delimiter | Ce paramètre permet d'indiquer le caractère de séparation entre les cellules. Le caractère par défaut est «,». |
$enclosure | Ce paramètre permet d'indiquer le caractère indiquant le début et la fin de la chaîne de caractères de la cellule. Le caractère par défaut est «"». |
$escape | Ce paramètre permet d'indiquer le caractère d'échappement. Par défaut, c'est la barre oblique inversé. |
Retour
Valeur | Description |
---|---|
FALSE | Cette valeur permet d'indiquer qu'une erreur s'est produite. |
NULL | Cette valeur permet d'indiquer que le contenu de la ligne texte est vide et que le Handle est invalide. |
tableau | Ces valeurs permettent d'indiquer le contenu de chacune des cellules ayant été lue sur la ligne texte. |
Description
Cette fonction permet d'effectuer la lecture d'une ligne de texte de format CSV dans un fichier, déplace le pointeur sur la ligne suivante et retourne un tableau de chacune des cellules du contenu de celle-ci.
Remarques
- Une ligne vide dans un fichier .CSV sera renvoyée à un tableau comprenant un seul champ, soit NULL, et il ne sera pas traitée comme une erreur.
- Macintosh : On peut corriger les problèmes de lecture de fin de lignes des fichiers .CSV sur un Macintosh en activation le paramètre de configuration «auto_detect_line_endings».
- Si vous indiquez une longueur de 0 ($length = 0), vous indiquez à la fonction que les lignes peuvent avoir une longueur illimité. Ce mode de fonctionne est malheureusement moins rapide car il ne sait pas combien de mémoire il doit réserver au maximum pour chaque ligne.
- Données binaires : La fonction fgetcsv n'est pas conçu à l'origine pour traiter des binaires et elle s'attend à des données textes. Toutefois, à partir de PHP 4.3.5, la fonction a été renforcé afin de mieux réagir dans ce contexte.
- Dossier inexistant : Si vous tentez le lire un fichier dans un dossier inexistant, vous aurez une combinaison de message d'erreur similaire à ceci «PHP Warning: opendir(/var/www/gladirexemple/): failed to open dir: No such file or directory in /var/www/gladirexemple/test.php on line 57 PHP Warning: fgetcsv() expects parameter 1 to be resource, boolean given in /var/www/gladirexemple/test.php on line 188».
Exemple
Prenons pour échantillons le fichier .CSV «/Documents/testgladir.csv» suivant :
SysCreated,personID,AccountId,FirstName,LastName,ZipCode,Email,regionAbbreviation,regionName,Status,expireIssueCoverDate19/06/2019 2:46:31 PM,296049,62451145,"Prenom1","Famille1","A5L 0B2","courriel1@gladir.com","CAEN","CAEN","Active","MAR 2022"
19/06/2019 2:35:31 PM,296048,47527155,"Prenom2","Famille2","B8P 1R2","courriel2@gladir.com","CAFR","CAFR","Active","16JUN 2021"
19/06/2019 2:20:00 PM,296047,26328443,"Prenom3","Famille3","C3A 1B9","courriel3@gladir.com","CAFR","CAFR","Active","19MAI 2023"
L'exemple suivant permet de rechercher le premier fichier .CSV du répertoire et d'afficher le contenu de les enregistrements des utilisateur :
- <?php
- $path = "/Documents/";
- $folder = opendir($path);
- while ($file = readdir($folder)) if($file != '.' && $file != '..' && $file != '.svn' && is_file($path .'/'. $file)) {
- $csv_file = $file;
- break;
- }
- echo $csv_file;
- $file=fopen($path .'/' . $csv_file,"r");
- while(! feof($file)) {
- $User=fgetcsv($file);
- echo print_r($User,true);
- }
- ?>
on obtiendra le résultat suivant :
Array(
[0] => 19/06/2019 2:46:31 PM
[1] => 296049
[2] => 62451145
[3] => Prenom1
[4] => Famille1
[5] => A5L 0B2
[6] => courriel1@gladir.com
[7] => CAEN
[8] => CAEN
[9] => Active
[10] => MAR 2022
)
Array
(
[0] => 19/06/2019 2:35:31 PM
[1] => 296048
[2] => 47527155
[3] => Prenom2
[4] => Famille2
[5] => B8P 1R2
[6] => courriel2@gladir.com
[7] => CAFR
[8] => CAFR
[9] => Active
[10] => 16JUN 2021
)
Array
(
[0] => 19/06/2019 2:20:00 PM
[1] => 296047
[2] => 26328443
[3] => Prenom3
[4] => Famille3
[5] => C3A 1B9
[6] => courriel3@gladir.com
[7] => CAFR
[8] => CAFR
[9] => Active
[10] => 19MAI 2023
)
Voir également
Langage de programmation - PHP - Référence de procédures et fonctions - explode
Langage de programmation - PHP - Référence de procédures et fonctions - file
Langage de programmation - PHP - Référence de procédures et fonctions - str_getcsv
Langage de programmation - PHP - Référence de procédures et fonctions - pack
Langage de programmation - PHP - Référence de procédures et fonctions - fputcsv
Index des extensions de fichier - Format de fichier .CSV
Langage de programmation - PHP - Fichier - Conversion d'un fichier CSV à XML
Langage de programmation - PHP - Fichier - Conversion d'un fichier CSV à SQL
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 430