Génération de QR codes en PHP : bibliothèque phpqrcode et guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de QR codes en PHP avec la bibliothèque phpqrcode

\n\n

Les QR codes sont devenus une partie intégrante du web moderne. Ils sont utilisés pour accéder rapidement à des liens, transmettre des coordonnées, se connecter au Wi-Fi et bien plus encore. Dans cet article, nous allons analyser la bibliothèque PHP populaire phpqrcode, qui permet de générer facilement et rapidement des QR codes côté serveur. C'est une solution idéale pour un site éducatif où il est nécessaire de montrer visuellement le fonctionnement des QR codes.

\n\n

Qu'est-ce que phpqrcode ?

\n

phpqrcode est une bibliothèque légère mais puissante pour la génération de QR codes en PHP pur. Elle ne nécessite pas l'installation d'extensions supplémentaires (comme GD ou Imagick), bien qu'elle les prenne en charge si elles sont présentes. La bibliothèque peut créer des QR codes de différentes versions (de 1 à 40), avec différents niveaux de correction d'erreurs (L, M, Q, H) et enregistrer le résultat en PNG, GIF ou JPEG. Le principal avantage est la simplicité d'utilisation : il suffit d'inclure un fichier et d'appeler une fonction.

\n\n

Installation et inclusion

\n

Téléchargez la bibliothèque depuis le dépôt officiel sur GitHub ou SourceForge. Pour l'installer, copiez simplement le fichier phpqrcode.php dans votre projet. Une autre méthode consiste à utiliser Composer :

\n\n
composer require phpqrcode/phpqrcode
\n\n

Après l'installation, incluez la bibliothèque dans votre script PHP :

\n\n
<?php\n// Si installé manuellement\ninclude 'phpqrcode.php';\n\n// Ou via Composer\nrequire 'vendor/autoload.php';\n?>
\n\n

Exemple de base : génération d'un QR code

\n

L'exemple le plus simple consiste à créer un QR code contenant une chaîne de texte ou une URL. Pour cela, on utilise la méthode statique QRcode::png() :

\n\n
<?php\n$text = "https://pythonlib.ru";\n$filename = "qrcode.png"; // Si non spécifié, affiche l'image directement\n$errorCorrectionLevel = 'L'; // Niveau de correction : L, M, Q, H\n$matrixPointSize = 10; // Taille du point (1-10)\n\n// Génération et sauvegarde dans un fichier\nQRcode::png($text, $filename, $errorCorrectionLevel, $matrixPointSize, 2);\n\necho "QR code enregistré sous $filename";\n?>
\n\n

Si le deuxième paramètre est omis, la bibliothèque affiche l'image PNG directement dans le navigateur :

\n\n
<?php\nheader('Content-Type: image/png');\nQRcode::png('https://pythonlib.ru', false, 'H', 8, 2);\n?>
\n\n

Personnalisation de l'apparence : couleur et taille

\n

Un QR code standard est en noir et blanc. Pour le rendre coloré ou changer l'arrière-plan, utilisez les fonctionnalités avancées. La bibliothèque permet de définir les couleurs via un tableau :

\n\n
<?php\n$text = "Bonjour, PythonLib !";\n$filename = "color_qr.png";\n\n// Paramètres : [R, V, B] pour les modules et l'arrière-plan\n$config = [\n    'module' => [52, 73, 94], // Bleu foncé\n    'background' => [236, 240, 241] // Gris clair\n];\n\nQRcode::png($text, $filename, 'M', 10, 2, false, $config);\n?>
\n\n

Pour un réglage précis de la taille, utilisez le paramètre $matrixPointSize (de 1 à 10). Plus la valeur est élevée, plus le QR code est grand. Vous pouvez également définir $quietZone (la bordure blanche autour du code) — le dernier paramètre de la méthode png().

\n\n

Génération d'un QR code pour le Wi-Fi

\n

L'une des tâches courantes est la création d'un QR code pour se connecter au Wi-Fi. Le format des données doit respecter la spécification :

\n\n
<?php\n$ssid = "MyHomeNetwork";\n$password = "secret123";\n$encryption = "WPA"; // WPA, WEP ou vide pour un réseau ouvert\n\n$wifiString = "WIFI:T:$encryption;S:$ssid;P:$password;;";\n\nQRcode::png($wifiString, "wifi_qr.png", 'Q', 10, 2);\necho "QR code pour le Wi-Fi prêt !";\n?>
\n\n

Création d'un QR code pour vCard (contacts)

\n

Un QR code peut contenir une carte de visite vCard. C'est pratique pour ajouter rapidement un contact dans un téléphone :

\n\n
<?php\n$vcard = "BEGIN:VCARD\\n";\n$vcard .= "VERSION:3.0\\n";\n$vcard .= "FN:Ivan Petrov\\n";\n$vcard .= "TEL:+7-123-456-78-90\\n";\n$vcard .= "EMAIL:ivan@exampl                    

Recommendations