Génération de CSV

Génération de CSV - PHP - Programmation

Marsh Posté le 16-02-2005 à 15:55:47    

Salut,
 
je génére du CSV avec PHP.
 
A la fin de l'execution du script, je mets à disposition de l'utilisateur un lien pour télécharger le fichier.
 
Excel vient se foutre dans IE pour afficher le résultat.
OK parfait, MAIS, il ne prends pas en compte les modifications du fichier si on reexecute le script!
 
Je suis obligé de maintenir shift appuyé pour avoir la dernière version.
 
Comment faire pour :
Soit avoir tjs la dernière version du fichier créé et non un fichier de cache.
Soit télécharger le dernier fichier sur le poste de l'utilisateur.
 
Merci pour vos pistes. ;)

Reply

Marsh Posté le 16-02-2005 à 15:55:47   

Reply

Marsh Posté le 16-02-2005 à 16:01:10    

Je suis pas sûr d'avoir bien compris...En ce qui me concerne, pour un résultat similaire je fais comme ça:

Code :
  1. header("Content-Type: text/x-csv" );
  2. header('Content-Disposition: attachment; filename="monfichiercsv.csv"');


 
Puis je génère le contenu à la volée avec de  bêtes echo...
 
[edit]
 
Le client se retrouve avec son fichier csv, après il en fait ce qu'il en veut...


Message édité par skeye le 16-02-2005 à 16:01:54

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 16:01:21    

Le lien pour télécharger pointe normalement sur un .php
ou tu envoie le l'entête qui va bien et tu rebalance la lecture de ton fichier par un echo ( si mes souvenir sont bon)
 
Le tout est de mettre les bonnes valeurs dans ton header..., il y a un truc genre no-cache je croix...
tu dois trouver de la doc sans problème
 
J'ai fait ca pour de la génération de PDF volumineux, ca marchais bien....

Reply

Marsh Posté le 16-02-2005 à 16:29:41    

Donc en gros, tu balances du CSV à la volé?
 
Moi j'ai généré un fichier sur le serveur (fopen, fwrite, fclose).
 
Pas la bonne méthode apparement :/

Reply

Marsh Posté le 16-02-2005 à 16:31:25    

AGA a écrit :

Donc en gros, tu balances du CSV à la volé?
 
Moi j'ai généré un fichier sur le serveur (fopen, fwrite, fclose).
 
Pas la bonne méthode apparement :/


Moi oui, c'est ce que je fais...
Mais si tu le fais sur le serveur, une fois qu'il est ouvert par le client c'est normal qu'il ne se recharge pas automatiquement...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 16:56:32    

C'est pas qu'il se rafraichit pas sur le client. (ça ce serait normal)
c'est qu'il ne se rafraichissait pas malgré le fait que l'on reclic sur le lien qui pointe sur le fichier.
Mais bon bref c'etait pas la bonne méthode, j'ai tout repris avec vos méthodes et ça tourne tout bien et c'est moins tarabiscoté comme technique.
 
Merci de votre participation. :)


Message édité par AGA le 16-02-2005 à 16:57:05
Reply

Marsh Posté le 16-02-2005 à 17:00:31    

http://fr.php.net/header
 
Exemple 6. Interdire la mise en cache avec header()

Code :
  1. <?php
  2. // Date du passé
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  4. // toujours modifié
  5. header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
  6. // HTTP/1.1
  7. header("Cache-Control: no-store, no-cache, must-revalidate" );
  8. header("Cache-Control: post-check=0, pre-check=0", false);
  9. // HTTP/1.0
  10. header("Pragma: no-cache" );
  11. ?>

Reply

Marsh Posté le 16-02-2005 à 17:01:14    

AGA a écrit :

j'ai tout repris avec vos méthodes et ça tourne tout bien et c'est moins tarabiscoté comme technique


oups j'avais pas lu, dsl


Message édité par soju le 16-02-2005 à 17:01:41
Reply

Marsh Posté le 16-02-2005 à 17:17:09    

Pas de pb, ça peut servir à d'autres. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed