Comment créer un tableau à partir d'un fichier CSV à l'aide de PHP et la fonction fgetcsv
Quelqu'un peut-il donner un code pour créer un tableau à partir d'un fichier CSV à l'aide de fgetcsv?
J'ai utilisé le code suivant pour créer un tableau à partir d'un simple fichier CSV, mais il ne fonctionne pas bien lorsque l'un de mes champs a plusieurs virgules - telles que les adresses.
$lines =file('CSV Address.csv');
foreach($lines as $data)
{
list($name[],$address[],$status[])
= explode(',',$data);
}
*Aussi, str_getcsv n'est pas pris en charge par mon service d'hébergement.
Le code ci-dessus ne fonctionne pas avec la suite de fichier CSV d'exemple. La première colonne est le nom, la deuxième colonne est l'adresse, la troisième colonne est le statut 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
- Coincé avec PHP 5.2 hein? Je ressens pour toi, je suis dans le même bateau avec mon fournisseur d'hébergement.
- Vous pouvez utiliser cette fonction d'aide: github.com/rap2hpoutre/csv-to-associative-array
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez dit dans votre titre, fgetcsv est le chemin à parcourir. C'est vachement facile à utiliser.
Vous aurez envie de mettre plus de vérification d'erreur dans ce cas
fopen()
échoue, mais cela fonctionne pour lire un fichier CSV ligne par ligne et d'analyser la ligne dans un tableau.list($names[], $addresses[], $statuses[]) = $line;
Je pense que le str_getcsv() la syntaxe est beaucoup plus propre, il ne nécessite pas l'CSV pour être stocké dans le système de fichiers.
Ou pour un ligne par ligne solution:
Ou pour une, ligne par ligne, solution sans str_getcsv():
J'ai créé une fonction qui vous permet de convertir un format csv chaîne dans un tableau. La fonction sait comment échapper les caractères spéciaux, et il fonctionne avec ou sans boîtier caractères.
Je l'ai essayé avec un fichier csv de l'échantillon et qu'il fonctionne comme prévu!
Vieille question, mais toujours d'actualité pour PHP 5.2 les utilisateurs. str_getcsv est disponible à partir de PHP 5.3. J'ai écrit une petite fonction qui fonctionne avec fgetcsv lui-même.
Ci-dessous est ma fonction de https://gist.github.com/4152628:
Retourne
De commencer la Lecture CSV
Essayer cette..
Pour obtenir un tableau avec les bonnes clés, vous pouvez essayer ceci:
Cette fonction retourne un tableau avec les valeurs d'en-Tête en tant que matrice de touches.
Merci de fin ci-dessous un lien vers la fonction de @knagode, renforcée avec un sauter des lignes paramètre.
https://gist.github.com/gabrieljenik/47fc38ae47d99868d5b3#file-csv_to_array
Essayez ce code:
Je suis venu avec ce joli code de base. Je pense qu'il pourrait être utile à quelqu'un.
Si vous souhaitez que chaque ligne dans un tableau, et chaque cellule dans la ligne dans le tableau: