Génération de QR codes en PHP avec la bibliothèque phpqrcode
\n\nLes 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\nQu'est-ce que phpqrcode ?
\nphpqrcode 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\nInstallation et inclusion
\nTé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 :
composer require phpqrcode/phpqrcode\n\nAprè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\nExemple de base : génération d'un QR code
\nL'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() :
<?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\nSi 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\nPersonnalisation de l'apparence : couleur et taille
\nUn 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\nPour 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().
Génération d'un QR code pour le Wi-Fi
\nL'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\nCréation d'un QR code pour vCard (contacts)
\nUn 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 Aussi dans la bibliothèque
PHP-DI pour PHP : guide complet avec exemples
Client Redis pour Go (Golang) : go-redis et redigo — guide complet
Travailler avec Excel en Kotlin : bibliothèques Apache POI et Apache POI pour Kotlin