{"id":2843,"date":"2022-08-25T14:01:56","date_gmt":"2022-08-25T12:01:56","guid":{"rendered":"https:\/\/ekiwi.de\/?p=2843"},"modified":"2023-04-07T13:50:36","modified_gmt":"2023-04-07T11:50:36","slug":"fputcsv-anfuehrungszeichen-entfernen","status":"publish","type":"post","link":"https:\/\/ekiwi.de\/index.php\/2843\/fputcsv-anfuehrungszeichen-entfernen\/","title":{"rendered":"fputcsv &#8211; Anf\u00fchrungszeichen entfernen"},"content":{"rendered":"<p>CSV-Dateien in PHP ohne Anf\u00fchrungszeichen.<\/p>\n<p><!--more--><\/p>\n<p>In PHP lassen sich CSV-Dateien einfach mit der Funktion &#8222;<a href=\"https:\/\/www.php.net\/manual\/de\/function.fputcsv.php\" target=\"_blank\" rel=\"noopener\">fputcsv<\/a>&#8220; erzeugen.<\/p>\n<p>Die Funktion hat standardm\u00e4\u00dfig folgende Parameter.<\/p>\n<pre> fputcsv(\r\n    resource $stream,\r\n    array $fields,\r\n    string $separator = \",\",\r\n    string $enclosure = \"\\\"\",\r\n    string $escape = \"\\\\\",\r\n    string $eol = \"\\n\"\r\n): int|false\r\n<\/pre>\n<p>Kommt in einem Feld ein Leerzeichen vor, dann wird ein $enclosure gesetzt, z.B.:<\/p>\n<pre>1;\"Andy Dunkel\";Wert1;Wert2;\"Weiterer Wert\"\r\n<\/pre>\n<p>Nun hatte ich die Anforderung, dass dieses Zeichen nicht gesetzt wird. Nun k\u00f6nnte man annehmen, dass man dazu einfach den Parameter mit einem leeren String besetzt:<\/p>\n<pre>fputcsv($handle, $row, \";\", \"\");\r\n<\/pre>\n<p>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 <a title=\"Excel-Daten in CSV speichern und formatieren mit Visual Basic for Application (VBA)\" href=\"https:\/\/ekiwi-blog.de\/50292\/vba-excel-makro-tabellenblatt-als-csv-datei-speichern\/\" target=\"_blank\" rel=\"noopener\">CSV-Datei<\/a> wird erzeugt, anschlie\u00dfend geladen, das Zeichen ersetzt und anschlie\u00dfend die Datei wieder gespeichert.<\/p>\n<pre>$handle = fopen($fileName, \"w\");\r\nfputcsv($handle, $row, \";\", \"~\");\r\nfclose($handle);\r\n\r\n$content = file_get_contents($fileName);\r\n$content = str_replace(\"~\", \"\", $content);\r\nfile_put_contents($fileName, $content);\r\n<\/pre>","protected":false},"excerpt":{"rendered":"<p>CSV-Dateien in PHP ohne Anf\u00fchrungszeichen.<\/p>\n","protected":false},"author":1,"featured_media":2228,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[14],"tags":[31],"class_list":["post-2843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-php"],"_links":{"self":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts\/2843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/comments?post=2843"}],"version-history":[{"count":0,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts\/2843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/media\/2228"}],"wp:attachment":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/media?parent=2843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/categories?post=2843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/tags?post=2843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}