Je tente actuellement d'écrire un service Web qui génère un code QR pour une chaîne donnée. J'utilise PHP QR Code (http://phpqrcode.sourceforge.net/) pour générer le code QR, comme ceci:Capture du flux PNG avec le tampon de sortie PHP
QRcode::png('PHP QR Code :)');
Résultat: un flux PNG du code QR est affiché à l'écran. Comme il s'agit d'une fonction vide qui est directement transmise au navigateur, cela empêche le renvoi correct de l'image.
Je voudrais capturer le flux PNG avec le tampon de sortie de PHP et demander à mon service web de retourner cette image capturée. J'ai mis en place le code de test suivant sur une page php simple à des fins de test:
include('/vendor/phpqrcode/qrlib.php');
$scancode = "testcode";
ob_implicit_flush(false); //just in case
ob_start();
QRcode::png($scancode);
$output = ob_get_contents();
ob_end_clean();
echo "--" . $output . "--";
die();
Cependant, quand je lance le code tampon ne fonctionne pas comme je l'avais prévu. Peu importe ce que je fais, une image cassée est toujours affichée dès que j'appelle la fonction. Lorsque je supprime le code de tampon de sortie, le code QR est affiché sur l'écran.
Pourquoi certaines de mes sorties ne sont-elles pas capturées?
Edit: concernant: phpqrcode library return image as a string
Merci beaucoup pour la réponse, cela a du sens. Comment ferais-je cela dans le contexte de mon code ci-dessus? J'ai essayé d'ajouter header_remove ("content-type: image/png") mais en vain. Je dois dire que je ne sais pas à 100% comment exactement tout cela fonctionne en arrière-plan. Je suppose que je devrais modifier la fonction qui génère l'image et essayer de dépouiller l'en-tête là-bas? – Jort