Se connecter avec
S'enregistrer | Connectez-vous

Exporter un fichier en php

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

Le plus simple est d'exporter en CSV, et mieux qu'un long discours je te conseille de lire http://fr2.php.net/manual/en/function.fputcsv.php si tu veux générer un fichier.
Sinon, si tu as juste besoin de télécharger ton résultat de requête, tu peux faire:
  1. <?php
  2. $res = mysql_query($ta_requete);
  3. ob_start();
  4. while ($row = mysql_fetch_array($res)) {
  5. echo '"', implode('","', $row), '"', chr(13), chr(10);
  6. }
  7. header("Content-disposition: attachment; filename=export.csv);
  8. header("Content-Type: text/csv");
  9. header("Content-Transfer-Encoding: binary");
  10. header("Content-Length: ".ob_get_length());
  11. header("Pragma: no-cache, public");
  12. header("Cache-Control: public, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
  13. header("Expires: 0");
  14. ob_end_flush();


Comme toujours dans de tels cas, la page ne doit rien afficher avant ce bout de code.
Expert Programmation

tous dépend de ce que tu veux en faire ensuite !!!

pour en faire un txt les header sont :
  1. header("Content-Type: text/plain");
  2. header("Content-Disposition: Attachment; filename="titre du txt".txt");
  3. header("Pragma: no-cache");


ensuite tu a juste a faire des echo pour remplir le txt avec :
" " (ASCII 32 (0x20)), un espace ordinaire.
"\t" (ASCII 9 (0x09)), une tabulation.
"\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
"\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
"\0" (ASCII 0 (0x00)), le caractère NUL.
"\x0B" (ASCII 11 (0x0B)), une tabulation verticale.
etc ...

pour en faire un tableau excel c'est un peut plus compliquer...
Je te conseille d'utilisé la lib : PHPExcel que tu pourra trouvais sur : http://phpexcel.codeplex.com/
et de suivre le tuto de developpez.com : http://g-ernaelsten.developpez.com/tutoriels/excel2007/


Lassé par la pub ? Créez un compte
Tom's guide dans le monde