Salut, ce que tu as fait est déjà pas mal. Je pense que tu peux terminer avec peu de changements.
Juste avant le ob_end_flush tu peux ajouter deux header en définissant $filename au préalable.
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '";');
Et si tu veux des virgules comme séparateur, il te suffit de remplacer les \t par la virgule sur les implode.
Pas très conventionnel et risque d'avoir des problèmes si il y a des virgules dans les données mais je pense que ça devrait fonctionner.
Pour faire quelque chose de plus conventionnel tu peux créer un fichier avec fopen et fputcsv et envoyer le contenu du fichier avec par exemple les mêmes header et un echo d'un file_get_contents du fichier fraichement créé.
L'avantage du fputcsv est qu'il va formater la ligne automatiquement de sorte qu'il n'y ait aucun problème pour la lire correctement dans un lecteur csv.
EDIT : j'avais pas fait gaffe qu'il y a déjà les header. Donc à part changer le echo implode, ça me semble ok. Quelque chose ne fonctionne pas comme tu veux ?
Salut, ce que tu as fait est déjà pas mal. Je pense que tu peux terminer avec peu de changements.
Juste avant le ob_end_flush tu peux ajouter deux header en définissant $filename au préalable.
[PHP]header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '";'); [/PHP]
Et si tu veux des virgules comme séparateur, il te suffit de remplacer les \t par la virgule sur les implode.
Pas très conventionnel et risque d'avoir des problèmes si il y a des virgules dans les données mais je pense que ça devrait fonctionner.
Pour faire quelque chose de plus conventionnel tu peux créer un fichier avec fopen et fputcsv et envoyer le contenu du fichier avec par exemple les mêmes header et un echo d'un file_get_contents du fichier fraichement créé.
L'avantage du fputcsv est qu'il va formater la ligne automatiquement de sorte qu'il n'y ait aucun problème pour la lire correctement dans un lecteur csv.
EDIT : j'avais pas fait gaffe qu'il y a déjà les header. Donc à part changer le echo implode, ça me semble ok. Quelque chose ne fonctionne pas comme tu veux ?