fputcsv – Anführungszeichen entfernen

CSV-Dateien in PHP ohne Anführungszeichen.

In PHP lassen sich CSV-Dateien einfach mit der Funktion “fputcsv” erzeugen.

Die Funktion hat standardmäßig folgende Parameter.

 fputcsv(
    resource $stream,
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false

Kommt in einem Feld ein Leerzeichen vor, dann wird ein $enclosure gesetzt, z.B.:

1;"Andy Dunkel";Wert1;Wert2;"Weiterer Wert"

Nun hatte ich die Anforderung, dass dieses Zeichen nicht gesetzt wird. Nun könnte man annehmen, dass man dazu einfach den Parameter mit einem leeren String besetzt:

fputcsv($handle, $row, ";", "");

Dies funktioniert allerdings nicht. In diesem Fall bricht die Funktion einfach mit einem Fehler ab. Hier hilft Trick 17. Zuerst schreiben wir die Datei mit einem Zeichen, welches idealerweise in unseren Daten nicht vorkommt. Die CSV-Datei wird erzeugt, anschließend geladen, das Zeichen ersetzt und anschließend die Datei wieder gespeichert.

$handle = fopen($fileName, "w");
fputcsv($handle, $row, ";", "~");
fclose($handle);

$content = file_get_contents($fileName);
$content = str_replace("~", "", $content);
file_put_contents($fileName, $content);

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert