str_getcsv

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

str_getcsvParst einen CSV-String in ein Array

Beschreibung

str_getcsv(
    string $string,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\"
): array

Parst eine Zeichenketten-Eingabe für Felder im CSV-Format und gibt ein Array mit den gelesenen Feldern zurück.

Hinweis:

Diese Funktion berücksichtigt die Locale-Einstellungen. Ist LC_CTYPE beispielsweise de_DE.UTF-8, werden Zeichenketten in Ein-Byte-Kodierungen von dieser Funktion möglicherweise falsch geparst.

Parameter-Liste

string

Die zu parsende Zeichenkette.

separator

Bestimmt das Feldtrennzeichen (nur ein Ein-Byte-Zeichen).

enclosure

Bestimmt das Textmarkierungszeichen (nur ein Ein-Byte-Zeichen).

escape

Bestimmt das Maskierungszeichen (höchstens ein Ein-Byte-Zeichen). Standardmäßig wird ein Backslash (\) verwendet. Eine leere Zeichenkette ("") deaktiviert den proprietären Maskierungsmechanismus.

Hinweis: Normalerweise wird ein enclosure-Zeichen innerhalb eines Feldes maskiert, indem es verdoppelt wird; allerdings kann das escape-Zeichen als Alternative verwendet werden. Also haben für die Standard-Parameterwerte "" und \" dieselbe Bedeutung. Außer der möglichen Maskierung des enclosure-Zeichens hat das escape-Zeichen keine besondere Bedeutung; es kann nicht einmal verwendet werden, um sich selbst zu maskieren.

Warnung

Wenn escape auf etwas anderes als eine leere Zeichenkette ("") gesetzt wird, kann dies zu einer CSV-Datei führen, die nicht mit » RFC 4180 konform ist oder die den Umlauf durch die PHP-CSV-Funktionen nicht übersteht. Der Standardwert für escape ist "\\", weshalb empfohlen wird, diesen Parameter explizit auf eine leere Zeichenkette zu setzen. Der Standardwert wird sich in einer zukünftigen Version von PHP ändern, jedoch nicht vor PHP 9.0.

Rückgabewerte

Gibt ein indexiertes Array zurück, das die eingelesenen Felder enthält.

Changelog

Version Beschreibung
7.4.0 Der Parameter escape interpretiert nun eine leere Zeichenkette als Signal, um den proprietären Maskierungsmechanismus zu deaktivieren. Zuvor wurde eine leere Zeichenkette wie der Vorgabewert behandelt.

Beispiele

Beispiel #1 str_getcsv()-Beispiel

<?php

$string
= 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);

var_dump($data);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(5) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
  [3]=>
  string(6) "Kotlin"
  [4]=>
  string(5) "Swift"
}

Beispiel #2 str_getcsv()-Beispiel mit einer leeren Zeichenkette

Achtung

Bei einer leeren Zeichenkette gibt diese Funktion den Wert [null] anstelle eines leeren Arrays zurück.

<?php

$string
= '';
$data = str_getcsv($string);

var_dump($data);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  NULL
}

Siehe auch

  • fgetcsv() - Liest eine Zeile von der Position des Dateizeigers und prüft diese auf kommaseparierte Werte (CSV)