(PHP 5 >= 5.2.0, PHP 7, PHP 8)
SplFileObject::setCsvControl — Set the delimiter, enclosure and escape character for CSV
$separator
= ",", string $enclosure
= "\"", string $escape
= "\\"): voidSets the delimiter, enclosure and escape character for parsing CSV fields.
separator
Der optionale Parameter separator
setzt das
Feld-Trennzeichen (nur ein Single-Byte-Zeichen).
enclosure
Der optionale Parameter enclosure
setzt das
Feld-Begrenzungszeichen (nur ein Single-Byte-Zeichen).
escape
Der optionale Parameter escape
setzt das
Maskierungs-Zeichen (höchstens ein Single-Byte-Zeichen). Eine leere
Zeichenkette (""
) deaktiviert den proprietären
Maskierungsmechanismus.
Hinweis: Normalerweise wird ein
enclosure
-Zeichen in einem Feld maskiert, indem es verdoppelt wird; allerdings kann alternativ dazu dasescape
-Zeichen verwendet werden. So haben die Werte""
und\"
standardmäßig dieselbe Bedeutung. Abgesehen von der Möglichkeit, dasenclosure
-Zeichen zu maskieren, hat das Zeichenescape
keine besondere Bedeutung; es ist nicht einmal dazu geeignet, 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.
Es wird kein Wert zurückgegeben.
Version | Beschreibung |
---|---|
7.4.0 |
The escape parameter now also accepts an empty
string to disable the proprietary escape mechanism.
|
Beispiel #1 SplFileObject::setCsvControl() example
<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
list ($fruit, $quantity) = $row;
// Do something with values
}
?>
Contents of data.csv
<?php apples|20 bananas|14 cherries|87 ?>