img src=image.php

Petit nouveau ! | 2 Messages

03 août 2012, 11:17

Bonjour,

je souhaite ouvrir un document php dans le source de la balise image.
mon fichier php me renvoie un nom de fichier en .png.

voici le code dans mon fichier html.

<img src='image.php'>


voici le code php
J'ai essayé avec et sans le header
<?php
//header("Content-type: image/png");
echo "images/toto.png";
?>

j'ai l'impression que le fichier html n'ouvre pas mon fichier php.
je l'ai pourtant déjà vu fonctionné sur un site.

j'utilise actuellement une solution de contournement mais j'aimerais réussir à l'utiliser comme ça.

Avez vous déjà rencontré ce problème, avez vous une idée de l'erreur que j'ai pu commettre?

Eléphanteau du PHP | 13 Messages

03 août 2012, 12:45

Avec un echo "images/toto.png"; tu vas juste afficher une string... (pas vraiment du php avancé ça).

Tu peux utiliser l'exemple sur la doc php (http://php.net/manual/en/function.imagepng.php) qui utilise image GD
$im = imagecreatefrompng("test.png"); //On charge

header('Content-Type: image/png');

imagepng($im); //On affiche
imagedestroy($im); //On nettoie la mémoire
Un autre solution est d’intégrer le binaire de l'image directement dans le html. Par exemple :
$img = file_get_contents('img.png'); 
echo '<img src="data:image/png;base64,'.base64_encode($img).'">';

Petit nouveau ! | 2 Messages

06 août 2012, 12:30

Ok je te remercie pour ton aide.

Eléphanteau du PHP | 34 Messages

07 août 2012, 14:48

<?php
header("Content-type: image/png"); 
echo "images/toto.png";
?> 
Pour garder l'idée proposée, il faut juste remplacer echo par readfile :
<?php
header('Content-type: image/png'); 
readfile('images/toto.png');
These lines the last endeavor,
To find the missing lifeline.