[php->csv] problème de séparateur
Résolu/Fermé
A voir également:
- [php->csv] problème de séparateur
- Easy php - Télécharger - Divers Web & Internet
- Excel concaténer plage cellules avec séparateur ✓ - Forum Excel
- Bouton php - Forum PHP
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
7 réponses
Bonjour
Si tu nous montrais plutôt le code qui génère ton csv ? Car les ; que tu montres sont dans un array de chaînes, ce qui n'a pas grand rapport avec le fait que le csv soit généré avec des ; ou des ,
Si tu nous montrais plutôt le code qui génère ton csv ? Car les ; que tu montres sont dans un array de chaînes, ce qui n'a pas grand rapport avec le fait que le csv soit généré avec des ; ou des ,
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
15 déc. 2009 à 16:06
15 déc. 2009 à 16:06
T'as pensé à utiliser la méthode implode (;) ;
Voir www.php.net pour la syntaxe
Voir www.php.net pour la syntaxe
Ah pardon je me suis trompé de bout de code, voila comment je généres le .csv
et
//champs étant l'array plus haut
$fp = fopen($nom_file, 'w') or die();// verif fopen, write et fclose ==OK + mode (ecraser fichier)
foreach ($champs as $line) {
fputcsv($fp, split(';', $line));
}
fclose($fp);
et
//champs étant l'array plus haut
$fp = fopen($nom_file, 'w') or die();// verif fopen, write et fclose ==OK + mode (ecraser fichier)
foreach ($champs as $line) {
fputcsv($fp, split(';', $line));
}
fclose($fp);
Surtout ne pas utiliser implode pour générer du csv. Ça ne marche pas, en particulier si les champs contiennent des ;. Il y a des fonctions faites spécialement pour le csv en PHP et il ne faut utiliser qu'elles.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu utilises fputcsv et tu as tout à fait raison.
Par contre, tu aurais dû lire la doc de la fonction pour l'utiliser. Le délimiteur est le 3ème paramètre ; par défaut, c'est la virgule. Si tu veux utiliser le ; :
fputcsv($fp, split(';', $line),";");
voir https://www.php.net/manual/fr/function.fputcsv.php
le ; qu'il y a dans split(';', $line) n'a aucun rapport avec le csv
Par contre, tu aurais dû lire la doc de la fonction pour l'utiliser. Le délimiteur est le 3ème paramètre ; par défaut, c'est la virgule. Si tu veux utiliser le ; :
fputcsv($fp, split(';', $line),";");
voir https://www.php.net/manual/fr/function.fputcsv.php
le ; qu'il y a dans split(';', $line) n'a aucun rapport avec le csv
Ah merci beaucoup Le Pèpère, j'ai lut la doc mais j'ai loupé cette partie.
Je me doutais que je passait à côté d'un truc bête.
Je me doutais que je passait à côté d'un truc bête.
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
15 déc. 2009 à 16:30
15 déc. 2009 à 16:30
En même temps si tu veut générer du csv je pense que tu dois lier les lignes d'un tableau avec le séparateur ";"
en utilisant implode, split te permettra pas de faire ce que tu voudras
en utilisant implode, split te permettra pas de faire ce que tu voudras