Les QR codes en PHP

Cette archive contient de quoi générer un QR dynamiquement

—- qrcode.zip


Vous pouvez entrer n'importe quel texte dans le champs data que vous voulez convertir en QR Code comme le montre le screenshot ci-dessus. Si ça ne fonctionne pas, vérifiez que vous avez bien l'extension GD2 d'installée en vérifiant via la fonction phpinfo();.

on peut aller plus loin

include "phpqrcode/qrlib.php"
QRcode::png("http://wleberre.fr/");

ou encore

include "phpqrcode/qrlib.php";
QRcode::png("http://wleberre.fr/", "wleberre.png", "L", 4, 4);

- Le premier paramètre spécifie le texte ou les données qui seront encodées dans l'image et est passée comme une chaîne normale.

- Le deuxième paramètre est le nom du fichier de sortie pour l'image générée (ici PNG). La valeur par défaut est un booléen à false et dans ce cas l'image est envoyée directement au navigateur sinon enregistrée au même endroit où se trouve le script.

- Le troisième paramètre est le niveau de correction d'erreur pour le QR Code généré, transmis sous forme d'un caractère. Il détermine la quantité de données par codewords (8 bits par codewords) qui peut être restaurée pour une image QR Code déformée ou endommagée à l'aide de l'algorithme de Reed-Solomon de correction d'erreur. Si le niveau de correction est haut alors la quantité de données dans le QR Code sera moindre suivant aussi la dimension donnée. Voici un tableau récapitulatif des niveaux liés au pourcentage de restauration avec les paramètres utilisés lors de l'appel de la méthode.

Niveau Pourcentage de restauration Constante sur PHP QR Code
bas 7% L
moyen 15% M
Quartile 25% Q
Haut 30% H

- Le quatrième paramètre spécifie la taille de chacun des carrés de code du QR Code mesurée en pixels. Chaque carré de code (également appelé “pixels” ou “modules”) est de 4*4px par défaut.

- Le cinquième paramètre spécifie la limite de la marge blanche autour du QR Code mesurée en “modules”. Par exemple un margin de 16px sur chaque côté pour 4*4px module par défaut.

La bibliothèque prend en charge l'exportation en PNG, SVG et EPS, et vous pouvez produire des QR Codes dans un de ces formats en changeant simplement le nom de la méthode de png() pour svg() ou eps() et utiliser l'extension correcte pour l'image générée dans le nom de fichier.

Vous pouvez aussi changer la couleur de fond et de premier plan en les passant en paramètres supplémentaires :

include "phpqrcode/qrlib.php";
$bgcolor = 0xCC0000;
$fgcolor = 0x00CC00;
QRcode::svg("http://wleberre.fr/", "wleberre.svg", "L", 4, 4, false, $bgcolor, $fgcolor);

La bibliothèque possède plus de fonctionnalités que vous pourrez retrouver sur le Wiki dédié comme par exemple la mise en cache, etc…

Petite astuce toujours en rapport avec les QR Codes, si vous souhaitez obtenir la taille finale de l'image à l'avance, voici une formule simple :

Taille de l'image (px) = (Pixels par module) × (Taille du module + 8)

Mais comme vous pouvez le voir notre image générée est de 132*132px car PHP QR Code a pris la version 2 (module de 25×25) de sorte que maintenant la taille sera bien de :

Taille de l'image (px) = 4 × (25 + 8) = 132×132px

Retour...