Maison >développement back-end >tutoriel php >Comment analyser des fichiers CSV avec des virgules intégrées en PHP à l'aide de fgetcsv ?

Comment analyser des fichiers CSV avec des virgules intégrées en PHP à l'aide de fgetcsv ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 14:31:44866parcourir

How to Parse CSV Files with Embedded Commas in PHP Using fgetcsv?

Création de tableaux à partir de fichiers CSV avec PHP à l'aide de fgetcsv

Question :

Un utilisateur souhaite pour créer des tableaux à partir d'un fichier CSV à l'aide de la fonction fgetcsv. Cependant, leur code actuel fonctionne mal lorsqu'un champ contient plusieurs virgules, comme des adresses. Ils n’ont pas non plus accès à str_getcsv. Pouvons-nous fournir une solution ?

Réponse :

Utiliser fgetcsv pour analyser les fichiers CSV

Comme mentionné dans le titre, fgetcsv est une excellente option pour analyser les fichiers CSV. Il offre un moyen efficace de décomposer chaque ligne en un tableau d'éléments.

Voici un extrait de code qui utilise fgetcsv :

$file = fopen('myCSVFile.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  print_r($line);
}
fclose($file);

Dans ce code :

  • fopen() : ouvre le fichier CSV en lecture et l'attribue à un descripteur de fichier.
  • while boucle : parcourt chaque ligne du fichier jusqu'à ce que la fin du fichier soit atteinte, déterminée par le retour FALSE de fgetcsv().
  • fgetcsv() : analyse la ligne actuelle dans un tableau d'éléments, qui est puis imprimé.
  • fclose() : ferme le descripteur de fichier.

Manipulation Embedded Virgules

Pour gérer les champs contenant des virgules intégrées, nous devons nous assurer que le fichier CSV est correctement formaté avec des délimiteurs ou des guillemets appropriés. En entourant les champs de guillemets doubles, fgetcsv peut identifier et séparer correctement les éléments contenant des virgules.

Par exemple, le format de fichier CSV suivant fonctionnerait correctement :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn