Parser un fichier csv - PHP - Programmation
Marsh Posté le 29-04-2006 à 13:42:08
fscanf($handle, '%[^:]:%[^:]:%[^\n]')
Marsh Posté le 29-04-2006 à 14:27:07
merci mille fois
oula, je pensais pas que l'on pouvait du regex sur un simple fscanf.
Marsh Posté le 29-04-2006 à 18:48:20
weed a écrit : Bonjour j'aimerais bien parser un fichier possédant toujours un meme nombre de champs par enregistrement, par ligne ...
|
while ($userinfo=fgets($handle)) |
Marsh Posté le 29-04-2006 à 23:01:54
ReplyMarsh Posté le 30-04-2006 à 12:14:45
Pas "réinventer", juste "refabriquer"
Parce que pour 3 lignes, ça ne pose pas de pb. Toute la difficulté est de savoir à quel moment il vaut mieux arrêter de coder et passer par un outil particulier
PS: Le lien ne fonctionne actuellement pas...
Marsh Posté le 29-04-2006 à 12:31:05
Bonjour j'aimerais bien parser un fichier possédant toujours un meme nombre de champs par enregistrement, par ligne ...
Chaque champs est séparé par un : (oui, je sais ce n'est pas un csv, coma separated value)
par exemple :
champs10:champs20:champs30
champs11:champs21:champs31
champs12:champs22:champs32
champs13:champs23:champs33
j'ai essayé d'utiliser fscanf
$handle = fopen ("source.txt","r" );
while ($userinfo = fscanf ($handle, "%s:%s:%s\n" ))
{
list ($name, $profession, $countrycode) = $userinfo;
//... traitement des données
echo "<br>".$profession;
}
fclose($handle);
j'ai suivi l'exemple de http://www.php.net/manual/fr/function.fscanf.php
lorsque le séparateur de champs est une tabulation, cela fonctionne nickel mais lorsque c'est :, cela ne fonctionne plus.