2 votes

Php code qr ne générant pas sur le serveur en utilisant api google donne un fichier vide

Je suis en train d'utiliser l'API Google pour créer des codes QR mais ça me donne un fichier vide.

Mon code ressemble à ceci

$file = file_get_contents('https://chart.googleapis.com/chart?cht=qr&chs=177x177&chl=Hello World');
move_uploaded_file($file, $path.$file);

J'ai essayé la plupart des choses mais je suis perdu si quelqu'un peut m'aider. Merci d'avance.

1voto

Muhammad Nouman Points 190

L'API Google Chart peut créer un QR pour vous. mais vous avez besoin de quelques conversions et il faut rester sur les bases si vous voulez une réponse précise de l'API

je vois que vous enregistrez la réponse dans $file peut-être une raison pour enregistrer le nom dans la base de données.

alors pourquoi ne pas le faire comme ça

$path = $folder_path.$file;
//Remarque : vous devez fournir le chemin du serveur ; pas l'URL

mais attendez... vous créez un code QR pour une chaîne disant "Hello World", il y a un espace vide dans la chaîne et vous passez cette chaîne avec la méthode get dans l'URL donc vous avez besoin de l'encodage d'URL pour encoder les espaces en "%20" et ainsi de suite... pour un passage d'URL correct.

ajouter ceci résoudra le problème

$my_qr_string = urlencode("Hello World");

une autre chose que vous oubliez est le support des caractères pour le QR

essayez d'utiliser l'encodage de caractères "UTF-8" pour éviter tout problème.

pour le téléchargement, utilisez la méthode file_put_contents() pour un téléchargement assuré

en fin de compte, vous avez

file_put_contents($path, file_get_contents('https://chart.googleapis.com/chart?cht=qr&chs=177x177&choe=UTF-8&chl='.$my_qr_string));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X