CSVs ohne Anführungszeichen funktioniert nicht mit fgetcsv
Ich versuche zu Parsen von CSV-Dateien die der user hochgeladen hat, die durch PHP, aber es funktioniert nicht richtig.
Ich hochgeladen habe mehrere richtig formatiert Wird und es funktionierte gut, aber ich habe viele Benutzer, die versuchen zu importieren CSV-Dateien aus Excel exportiert und Sie Probleme haben. Ich habe verglichen, die Dateien zu mir und bemerkte, dass die Excel-Dateien alle fehlen Anführungszeichen um die Einträge. Abgesehen davon, dass Sie identisch sind. Wenn ich öffnen Sie es und speichern Sie es mit Open-Office -, ohne dass änderungen an allen, es funktioniert. Also ich bin mir ziemlich sicher, dass er bezogen auf die Zitate.
Meine Frage ist, wie lese ich diese falsch formatiert Wird?
UPDATE: Ursache gefunden!
Dies ist spezifisch für die Mac-version von Excel. Zeilenumbrüche anders behandelt werden, auf Macs, die für den beliebigen Grund, so, bevor Sie mit fgetcsv, sollten Sie dies tun;
ini_set('auto_detect_line_endings',TRUE);
- Können Sie uns zeigen, Ihren code und sagen Sie uns, was das problem ist? Wir verwenden fgetcsv() ohne Probleme, unabhängig von der Formatierung.
- Vielen Dank für dieses Alter!! life saver
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist spezifisch für die Mac-version von Excel. Zeilenumbrüche anders behandelt werden, auf Macs, die für den beliebigen Grund, so, bevor Sie mit fgetcsv, sollten Sie dies tun;
Blick auf die manual page von
fgetcsv
, deren Prototyp wie folgt aussieht :Den default-Wert für
$enclosure
(d.h. die 4. parameter) ist ein double-quote.Was ist, wenn Sie versuchen, die angeben, dass Sie nicht möchten, dass alle Gehäuse, die Angabe einer leeren Zeichenfolge für das 4. parameter ?
(Natürlich könnte brechen, was momentan ist-was bedeutet, Sie würden zu tun haben mit zwei getrennten Fällen : - Dateien mit Feldern eingeschlossen in doppelte Anführungszeichen, und Dateien konnten nicht gelesen werden, indem der erste Fall)
fgetcsv
.