Quelqu'un peut-il gentiment fournir un code pour créer un tableau à partir d'un fichier CSV en utilisant fgetcsv?
J'ai utilisé le code suivant pour créer un tableau à partir d'un simple fichier CSV, mais cela ne fonctionne pas correctement lorsqu'un de mes champs comporte plusieurs virgules, telles que des adresses.
$lines =file('CSV Address.csv');
foreach($lines as $data)
{
list($name[],$address[],$status[])
= explode(',',$data);
}
* De plus, str_getcsv n'est pas pris en charge par mon service d'hébergement.
Le code ci-dessus ne fonctionne pas avec l'exemple de fichier CSV suivant. La première colonne est le nom, la deuxième colonne est l'adresse, la troisième colonne est l'état matrimonial.
Scott L. Aranda,"123 Main Street, Bethesda, Maryland 20816",Single
Todd D. Smith,"987 Elm Street, Alexandria, Virginia 22301",Single
Edward M. Grass,"123 Main Street, Bethesda, Maryland 20816",Married
Aaron G. Frantz,"987 Elm Street, Alexandria, Virginia 22301",Married
Ryan V. Turner,"123 Main Street, Bethesda, Maryland 20816",Single
Réponses:
Comme vous l'avez dit dans votre titre, fgetcsv est la voie à suivre. C'est sacrément facile à utiliser.
Vous voudrez y mettre plus de vérification des erreurs en cas d'
fopen()
échec, mais cela fonctionne pour lire un fichier CSV ligne par ligne et analyser la ligne dans un tableau.la source
list($names[], $addresses[], $statuses[]) = $line;
Je pense que la syntaxe str_getcsv () est beaucoup plus propre, elle ne nécessite pas non plus que le CSV soit stocké dans le système de fichiers.
Ou pour une solution ligne par ligne:
Ou pour une solution ligne par ligne sans str_getcsv ():
la source
J'ai créé une fonction qui convertira une chaîne csv en tableau. La fonction sait comment échapper les caractères spéciaux et fonctionne avec ou sans caractères de clôture.
Je l'ai essayé avec votre échantillon csv et cela fonctionne comme prévu!
la source
la source
Ancienne question, mais toujours d'actualité pour les utilisateurs de PHP 5.2. str_getcsv est disponible depuis PHP 5.3. J'ai écrit une petite fonction qui fonctionne avec fgetcsv lui-même.
Voici ma fonction de https://gist.github.com/4152628 :
Retour
Commencez à lire CSV
la source
Essaye ça..
la source
Cette fonction renverra un tableau avec des valeurs d'en-tête sous forme de clés de tableau.
la source
Pour obtenir un tableau avec les bonnes clés, vous pouvez essayer ceci:
la source
Veuillez trouver ci-dessous un lien vers la fonction de @knagode, améliorée avec un paramètre de saut de lignes. https://gist.github.com/gabrieljenik/47fc38ae47d99868d5b3#file-csv_to_array
la source
Je suis venu avec ce code assez basique. Je pense que cela pourrait être utile à n'importe qui.
la source
Si vous voulez que chaque ligne soit dans un tableau et chaque cellule de la ligne dans un tableau:
la source
Essayez ce code:
la source
la source
la source