2010-04-06 5 views

Répondre

8

oui, vous pouvez spécifier l'onglet "\ t" dans ses paramètres. Voir le doc.

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

$fileHandle est un descripteur de fichier valide. Le 0 est juste pour dire à la fonction de ne pas limiter la recherche à travers les lignes (cependant, vous pouvez changer cela pour convenir, le docs dit ne pas imposer une limite diminue les performances).

+0

est l'onglet delimiter différent pour macs? – Brian

+0

@Brian J'ai eu un rapide Google, et je ne pense pas. Habituellement, ce ne sont que des fins de ligne et des sauts de ligne. – alex

+0

J'ai cette erreur en essayant d'utiliser "\ t" pour le délimiteur? fgetcsv(): le délimiteur doit être un seul caractère –

12

Assurez-vous d'utiliser des guillemets autour du "\ t", les guillemets simples ne fonctionneront pas.

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

Il manque deux parenthèses dans votre instruction de boucle while. Cela devrait ressembler plus à 'while (($ line = fgetcsv ($ fh, 0," \ t "))! == false)', sinon '$ line' sera renvoyé comme un booléen. – user555

+0

Ceci est un exemple curieux, car * oui * cela fonctionne 100% du temps comme écrit, mais peut ne pas fonctionner comme il est * interprété * –

Questions connexes