2010-04-06 11 views

Antwort

8

ja, Sie können Tab "\ t" in seinen Parametern angeben. siehe doc.

while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) 
34
$csvData = fgetcsv($fileHandle, 0, "\t"); 

Wo $fileHandle eine gültige Datei-Handle ist. Die 0 ist nur, um der Funktion zu sagen, das Suchen durch Linien nicht einzuschränken (aber Sie können das ändern, um zu passen, die docs do sagen, dass das Auferlegen eines Limits Leistung verringert).

+0

ist die Registerkarte Trennzeichen für Macs unterschiedlich? – Brian

+0

@Brian Ich hatte eine schnelle Google, und ich denke nicht. Normalerweise sind das nur Zeilenenden und Zeilenvorschübe. – alex

+0

Ich erhalte diesen Fehler, wenn ich versuche, "\ t" als Trennzeichen zu verwenden? fgetcsv(): Trennzeichen muss ein einzelnes Zeichen sein –

12

Stellen Sie sicher, dass doppelte Anführungszeichen um das "\ t" verwendet werden, einfache Anführungszeichen funktionieren nicht.

$fh = fopen($file, 'r'); 
while ($line = fgetcsv($fh, 0, "\t") !== false) { 
    // do stuff 
} 
+0

Ihre 'while' Schleife Anweisung fehlt zwei Klammern. Es sollte mehr wie 'while (($ line = fgetcsv ($ fh, 0," \ t "))! == false)' aussehen, ansonsten wird $ line als boolescher Wert zurückgegeben. – user555

+0

Dies ist ein kurioses Beispiel, denn * ja * es funktioniert zu 100% wie geschrieben, funktioniert aber möglicherweise nicht so, wie es interpretiert wird * –

Verwandte Themen