Wie kann ich fgetcsv () in PHP dazu bringen, das neue Zeilenzeichen des Classic Mac (CR) zu erkennen?

7

Ich verwende diesen Code, um die Anzahl der Spalten aus einer CSV-Datei zu erhalten:

%Vor%

Es funktioniert einwandfrei , es sei denn wird die Datei mit Excel für Mac 2011 exportiert, da das neue Zeilenzeichen dann Klassischer Mac (CR) ist, das fgetcsv nicht erkennt .

Wenn ich manuell den Zeilenumbruch von Classic Mac (CR) zu Unix (LR) ändere, funktioniert es, aber ich muss das automatisieren.

Wie kann ich fgetcsv das neue Zeichen für den klassischen Mac (CR) erkennen lassen?

    
Edward Tanguay 21.01.2011, 14:24
quelle

2 Antworten

18

Aus dem Handbuch :

  

Hinweis: Wenn PHP nicht richtig ist   Erkennen der Zeilenenden wann   Dateien lesen oder erstellen von   ein Macintosh Computer, der die   auto_detect_line_endings Laufzeit   Konfigurationsoption kann helfen, zu lösen   das Problem.

    
Saul 21.01.2011, 14:27
quelle
1

Wenn Sauls Antwort nicht funktioniert, schreibe ich ein einfaches Skript, um die Datei auf einmal zu lesen und alles mit \ n zu überschreiben, die Ergebnisse in eine neue Datei zu schreiben und dann die neue Datei zu speichern .

Ich finde es amüsant, dass diese Begriffe aus den Zeiten kommen, in denen Schreibmaschinen benutzt wurden:
\ n = Zeilenvorschub (LF) - rückt das Papier um eine Zeile vor.
\ r = Wagenrücklauf (CR) - bringt den Wagen zur linken Seite der Schreibmaschine zurück.

    
Jazzerus 21.01.2011 14:35
quelle

Tags und Links