J'essaie de générer des codes QR sur mon site Web. Tout ce qu'ils ont à faire est d'avoir une URL en eux, qu'une variable sur mon site fournira. Quelle serait la manière la plus simple de procéder?
ne réinventez pas la roue! ci-dessous les réponses sont parfaites
Jordan Arseno
4
Akor: pourriez-vous s'il vous plaît désaccepter ma réponse? Google a désapprouvé l'API sur laquelle s'appuie ma réponse, elle ne sert donc plus à rien à partir de maintenant.
Y a-t-il des limites à l'utilisation de l'API Google ?. Je veux dire des limitations comme: quantité de demandes dans un temps donné, etc.
Lobo
11
Il convient de noter que cela est obsolète. Google prévoit de continuer le support jusqu'en 2015. Donc, comme toujours, avertissez emptor.
blainarmstrong
4
@Lobo Selon leur documentation : " Il n'y a pas de limite au nombre d'appels par jour que vous pouvez passer à l'API Google Chart. Cependant, nous nous réservons le droit de bloquer toute utilisation que nous considérons comme abusive. ".
Alexandru Guzinschi
3
Je trouve la réponse de @abaumg meilleure car cela ne dépend pas de tiers comme Google ...
arod
4
Sept 2019 - toujours en activité!
Anupam
87
Le moyen le plus simple de générer des codes QR avec PHP est la bibliothèque phpqrcode .
+1 cela répond de plus près à la question, vous pouvez générer vous-même le code QR, sans être limité par les limites de Google appliquées aux demandes. Cela garantira également que votre site Web fonctionne, même lorsque le contrat du point de terminaison Google change.
Sunny R Gupta
Avertissement: il semble que cette bibliothèque soit "morte" - elle n'a pas été mise à jour par l'auteur depuis octobre 2010 et a quelques correctifs dans le suivi des problèmes que les utilisateurs de la bibliothèque devraient envisager d'appliquer avant d'utiliser la bibliothèque.
CubicleSoft
mais comment le convertir en standard mvc des idées !!!!
saurabh kamble
@CubicleSoft Je pense que le développeur a pris votre commentaire au sérieux et mis à jour tout de suite
mokNathal
@mokNathal - Je ne vois rien de différent ici. La version la plus récente disponible sur la page Téléchargements date toujours de 2010.
CubicleSoft
24
La bibliothèque phpqrcode est très rapide à configurer et la documentation de l'API est facile à comprendre.
cette bibliothèque ne semble pas fonctionner pour une variété d'entrées, le texte petit et simple est bien
duckduckgo
Pouvez-vous donner un exemple?
RafaSashi
rien de plus, quand je fais $ codeContents = "www.example.com" c'est ok mais si je fais $ codeContents = "www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttIr1B0=" il n'a pas montré l'image correcte.
duckduckgo
Je ne peux pas reproduire l'erreur. Cela fonctionne bien avec QRcode :: png ('www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttI r1B0 ='); peut-être que cela a quelque chose à voir avec les en
RafaSashi
2
Puis-je utiliser la bibliothèque php-qrcode à des fins commerciales, comme pour développer un site Web qui nécessite du code qr dans une partie de sa partie?
Suneeta Singh
15
La bibliothèque endroid / QrCode est facile à utiliser, bien entretenue et peut être installée à l'aide de composer. Il existe également un bundle à utiliser directement avec Symfony.
Installation:
$ composer require endroid/qrcode
Utilisation:
<?php
useEndroid\QrCode\QrCode;
$qrCode =newQrCode();
$qrCode
->setText('Life is too short to be generating QR codes')->setSize(300)->setPadding(10)->setErrorCorrection('high')->setForegroundColor(array('r'=>0,'g'=>0,'b'=>0,'a'=>0))->setBackgroundColor(array('r'=>255,'g'=>255,'b'=>255,'a'=>0))->setLabel('Scan the code')->setLabelFontSize(16)->setImageType(QrCode::IMAGE_TYPE_PNG);// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();// or create a response object
$response =newResponse($qrCode->get(),200, array('Content-Type'=> $qrCode->getContentType()));
Monsieur Iwazaru , comment puis-je utiliser setText()si j'ai PLUSIEURS données? Par exemple, je $a = 1, $b = 2, $c = 3?. Je dois utiliser plus d' UNE phrase ou une chaîne. Comment puis je faire ça?
Comme la setTextméthode n'accepte qu'un seul paramètre, je suppose que vous devriez concaténer vos variables en une seule avant de la passer. Mais je ne suis pas sûr de bien comprendre votre problème, vous devriez peut-être ouvrir un problème dans le dépôt de la bibliothèque.
Iwazaru
Iwazaru, j'ai la réponse monsieur ..
Tu veux le partager? ;)
Iwazaru
1
Bien sûr :) J'ai utilisé implode () en php pour combiner toutes les données, puis exploser () si nécessaire. Thats it sir :)
10
qrcode-generator sur Github. Script le plus simple et fonctionne comme du charme.
Avantages:
Aucune dépendance tierce
Aucune limitation pour le nombre de générations de code QR
Je ne trouve pas de documentation à ce sujet, mais ça a l'air génial!
Björn C
@ praba230890 pourriez-vous fournir d'autres exemples avec ce script? J'essaie d'obtenir des informations de contact dans un code QR 300x300 px J'ai installé / téléchargé le script sur mon hôte local et le sample_html.php fonctionne. Mais les deux autres non. mon japonais n'est pas si bon (ok j'utiliserai google translate)
alex
oh et serait-ce plus rapide / meilleur que la bibliothèque phpqrcode?
alex
c'est désespéré.
navjot singh
5
J'utilise l'api google qrcode depuis un certain temps, mais je n'ai pas vraiment aimé cela car cela me oblige à être sur Internet pour accéder à l'image générée.
J'ai fait une petite recherche sur la ligne de commande et j'ai découvert que Linux avait un outil de ligne de commande qrencodepour générer des qr-codes.
J'ai écrit ce petit script. Et la bonne partie est que l'image générée a une taille inférieure à 1 Ko. Eh bien, les données fournies sont simplement une URL.
Vous devez juste l'avoir installé. [la plupart des applications d'imagerie sur Linux l'auraient installé sous le capot sans que vous vous en rendiez compte.
Que se passe-t-il si vous allez àhttp://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Doktor J
escapeshellarg expliqué ici (pour ceux qui se demandent) - stackoverflow.com/a/22739494/195722 . Personnellement, je ne débourserais pas une commande à chaque fois (en particulier pour une génération faisant face au public) et j'utiliserais certainement regex pour m'assurer que ce qu'ils passaient était une chaîne que j'attendais.
Natalie Adams
fonctionne bien sur ubuntu 16.04
Asuquo12
4
Je sais que la question est de savoir comment générer des codes QR en utilisant PHP, mais pour d'autres qui recherchent un moyen de générer des codes pour les sites Web, le faire en javascript pur est un bon moyen de le faire. Le plugin jquery-qrcode jquery le fait bien.
J'utilise le plugin Jquery github.com/lrsjng/jquery-qrcode depuis un moment maintenant, également joli. Cependant, la sortie est uniquement binaire. Donc, si vous devez générer et enregistrer une image au format PNG, cela ne vous aidera pas trop. C'est pourquoi la plupart des développeurs qui lisent cette question ont besoin de PHP.
Kai Noack
Il est possible de télécharger une image de données générée par JS à 100% dans le client.
Quinn Comendant
Excusez-moi de ne pas avoir été clair. Je voulais dire "enregistrer le serveur" - pas possible avec seulement Javascript.
Réponses:
Il convient d'ajouter qu'en plus de la bibliothèque de codes QR publiée par @abaumg , Google fournit un
API des codes QRQR Codes API merci beaucoup à @Toukakoukan pour la mise à jour du lien .Pour utiliser ceci, en gros:
300x300
est la taille de l'image QR que vous souhaitez générer,chl
s'agit de la chaîne codée par URL que vous souhaitez transformer en code QR, etchoe
est le codage ( en option).Le lien ci-dessus donne plus de détails, mais pour l'utiliser, il suffit
src
de pointer l'image d'une image sur la valeur manipulée, comme ceci:Démo:
la source
Le moyen le plus simple de générer des codes QR avec PHP est la bibliothèque phpqrcode .
la source
La bibliothèque phpqrcode est très rapide à configurer et la documentation de l'API est facile à comprendre.
En plus de la réponse de abaumg Je joins 2 exemples
PHP
de http://phpqrcode.sourceforge.net/examples/index.php1. encodeur de code QR
incluez d'abord la bibliothèque de votre chemin local
puis pour sortir l'image directement sous forme de flux PNG, par exemple:
pour enregistrer le résultat localement sous forme d'image PNG:
2. Décodeur de code QR
Voir aussi le décodeur zxing :
http://zxing.org/w/decode.jspx
Très utile pour vérifier la sortie.
3. Liste des formats de données
Une liste de formats de données que vous pouvez utiliser dans votre code QR en fonction du type de données:
http://
)la source
La bibliothèque endroid / QrCode est facile à utiliser, bien entretenue et peut être installée à l'aide de composer. Il existe également un bundle à utiliser directement avec Symfony.
Installation:
Utilisation:
la source
setText()
si j'ai PLUSIEURS données? Par exemple, je$a = 1
,$b = 2
,$c = 3
?. Je dois utiliser plus d' UNE phrase ou une chaîne. Comment puis je faire ça?setText
méthode n'accepte qu'un seul paramètre, je suppose que vous devriez concaténer vos variables en une seule avant de la passer. Mais je ne suis pas sûr de bien comprendre votre problème, vous devriez peut-être ouvrir un problème dans le dépôt de la bibliothèque.qrcode-generator sur Github. Script le plus simple et fonctionne comme du charme.
Avantages:
la source
J'utilise l'api google qrcode depuis un certain temps, mais je n'ai pas vraiment aimé cela car cela me oblige à être sur Internet pour accéder à l'image générée.
J'ai fait une petite recherche sur la ligne de commande et j'ai découvert que Linux avait un outil de ligne de commande
qrencode
pour générer des qr-codes.J'ai écrit ce petit script. Et la bonne partie est que l'image générée a une taille inférieure à 1 Ko. Eh bien, les données fournies sont simplement une URL.
Puis dans le html je charge l'image:
Vous devez juste l'avoir installé. [la plupart des applications d'imagerie sur Linux l'auraient installé sous le capot sans que vous vous en rendiez compte.
la source
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Je sais que la question est de savoir comment générer des codes QR en utilisant PHP, mais pour d'autres qui recherchent un moyen de générer des codes pour les sites Web, le faire en javascript pur est un bon moyen de le faire. Le plugin jquery-qrcode jquery le fait bien.
la source