Page 1 sur 1

img src=image.php

Posté : 03 août 2012, 11:17
par satcmoo
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?

Re: img src=image.php

Posté : 03 août 2012, 12:45
par BafS
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).'">';

Re: img src=image.php

Posté : 06 août 2012, 12:30
par satcmoo
Ok je te remercie pour ton aide.

Re: img src=image.php

Posté : 07 août 2012, 14:48
par Lirio
<?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');