Heim >Backend-Entwicklung >PHP-Tutorial >Wie analysiere ich CSV-Dateien mit eingebetteten Kommas in PHP mit fgetcsv?

Wie analysiere ich CSV-Dateien mit eingebetteten Kommas in PHP mit fgetcsv?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 14:31:44891Durchsuche

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

Arrays aus CSV-Dateien mit PHP mit fgetcsv erstellen

Frage:

Ein Benutzer möchte um Arrays aus einer CSV-Datei mit der Funktion fgetcsv zu erstellen. Ihr aktueller Code weist jedoch eine Fehlfunktion auf, wenn ein Feld mehrere Kommas enthält, beispielsweise Adressen. Außerdem fehlt ihnen der Zugriff auf str_getcsv. Können wir eine Lösung anbieten?

Antwort:

Verwenden von fgetcsv zum Parsen von CSV-Dateien

Wie im Titel erwähnt, fgetcsv ist eine hervorragende Option zum Parsen von CSV-Dateien. Es bietet eine effiziente Möglichkeit, jede Zeile in ein Array von Elementen zu zerlegen.

Hier ist ein Codeausschnitt, der fgetcsv verwendet:

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

In diesem Code:

  • fopen(): Öffnet die CSV-Datei zum Lesen und weist sie einem Dateihandle zu.
  • while Schleife: Durchläuft jede Zeile der Datei, bis das Ende der Datei erreicht ist, bestimmt durch die FALSE-Rückgabe von fgetcsv().
  • fgetcsv(): Analysiert die aktuelle Zeile in ein Array von Elementen dann gedruckt.
  • fclose(): Schließt das Dateihandle.

Handling Embedded Kommas

Um Felder mit eingebetteten Kommas zu verarbeiten, müssen wir sicherstellen, dass die CSV-Datei ordnungsgemäß mit geeigneten Trennzeichen oder Anführungszeichen formatiert ist. Durch das Einschließen von Feldern in doppelte Anführungszeichen kann fgetcsv Elemente, die Kommas enthalten, korrekt identifizieren und trennen.

Zum Beispiel würde das folgende CSV-Dateiformat korrekt funktionieren:

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

Das obige ist der detaillierte Inhalt vonWie analysiere ich CSV-Dateien mit eingebetteten Kommas in PHP mit fgetcsv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn