vider le buffer

Invité
Invité n'ayant pas de compte PHPfrance

23 févr. 2011, 04:11

Bonjour à tous,

j'envoie des données au navigateur en utilisant le code suivant:

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");
echo utf8_decode($data);

ça marche bien mais le fichier envoyé contient des données html non désirées: menus du site, bannière...
Comment puis-je faire pour vider le buffer avant de renvoyer les données?

J'ai tenté ceci qui me renvoie un fichier vide
ob_start();

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");
echo utf8_decode($data);
ob_get_clean();


En vous remerciant pour vos conseils.

ViPHP
ViPHP | 2577 Messages

23 févr. 2011, 09:46

Bonjour,

Pour moi, header("Content-Disposition: attachment; filename=test.xls"); est en trop.
Ce genre de commande me fait plus penser à de l'envoi de pièces jointes par mail, mais il manquerai les délimiteurs pour le fichier.

Eléphant du PHP | 275 Messages

23 févr. 2011, 11:42

echo ob_get_clean();

ViPHP
ViPHP | 2577 Messages

23 févr. 2011, 12:14

Bonjour,
echo ob_get_clean();
Ce que tu proposes est de vider le buffer et de remettre dans le buffer ce qu'il y avait.

Eléphant du PHP | 275 Messages

23 févr. 2011, 13:50

indeed, s't'un ob_end_clean qu'il faut.