(PHP 5 >= 5.3.0, PHP 7, PHP 8)
str_getcsv — Parst einen CSV-String in ein Array
$string
,$separator
= ",",$enclosure
= "\"",$escape
= "\\"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
beispielsweisede_DE.UTF-8
, werden Zeichenketten in Ein-Byte-Kodierungen von dieser Funktion möglicherweise falsch geparst.
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 dasescape
-Zeichen als Alternative verwendet werden. Also haben für die Standard-Parameterwerte""
und\"
dieselbe Bedeutung. Außer der möglichen Maskierung desenclosure
-Zeichens hat dasescape
-Zeichen keine besondere Bedeutung; es kann nicht einmal verwendet werden, um sich selbst zu maskieren.
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.
Gibt ein indexiertes Array zurück, das die eingelesenen Felder enthält.
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.
|
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
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 }