Générateur de QR codes en PHP : bibliothèque phpqrcode et alternatives

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érateur de QR codes en PHP : aperçu des meilleures bibliothèques

Les QR codes sont devenus une partie intégrante du web moderne. Ils sont utilisés pour un accès rapide aux liens, la transmission de coordonnées, l'authentification dans les services et même pour les paiements. Si vous développez en PHP et souhaitez intégrer la génération de QR codes sur votre site, vous n'avez pas besoin de réinventer la roue — il existe des bibliothèques éprouvées qui accomplissent cette tâche en quelques lignes de code.

Dans cet article, nous allons examiner trois solutions populaires : la classique phpqrcode, la moderne endroid/qr-code et la légère chillerlan/php-qrcode. Vous apprendrez comment installer chacune d'elles, générer un QR code et l'afficher à l'écran ou le sauvegarder dans un fichier.



1. Bibliothèque phpqrcode (version classique)

C'est l'une des premières bibliothèques pour la génération de QR codes en PHP. Elle ne nécessite pas de dépendances externes, fonctionne « prête à l'emploi » et est encore utilisée sur de nombreux projets legacy. Son principal inconvénient est l'absence de support des normes modernes PSR et Composer (bien qu'elle puisse être installée manuellement).



Installation

Téléchargez l'archive depuis SourceForge et décompressez-la dans le dossier de votre projet. Incluez le fichier qrlib.php :

require_once 'phpqrcode/qrlib.php';


Exemple de génération et d'affichage PNG

<?phprequire_once 'phpqrcode/qrlib.php';

// Données à encoder$text = 'https://pythonlib.ru';

// Chemin pour sauvegarder le fichier$filename = 'qrcode.png';

// Génération du QR code avec niveau de correction L (7%) et taille 10QRcode::png($text, $filename, QR_ECLEVEL_L, 10, 2);

// Affichage de l'image dans le navigateurheader('Content-Type: image/png');QRcode::png($text, false, QR_ECLEVEL_L, 10, 2);?>

Le deuxième paramètre false signifie que l'image est affichée directement dans le navigateur, et non sauvegardée dans un fichier.



2. Bibliothèque endroid/qr-code (moderne et flexible)

C'est la solution la plus populaire sur Packagist. La bibliothèque supporte PSR-4, s'intègre facilement avec n'importe quel framework (Laravel, Symfony) et permet de personnaliser les couleurs, la taille, les marges et même d'ajouter un logo.



Installation via Composer

composer require endroid/qr-code


Exemple de base de génération

<?phprequire 'vendor/autoload.php';

use Endroid\\QrCode\\QrCode;use Endroid\\QrCode\\Writer\\PngWriter;

$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(300) ->setMargin(10);

$writer = new PngWriter();$result = $writer->write($qrCode);

// Affichage dans le navigateurheader('Content-Type: '.$result->getMimeType());echo $result->getString();?>


QR code avec logo

<?phpuse Endroid\\QrCode\\Logo\\Logo;use Endroid\\QrCode\\Color\\Color;

$logo = Logo::create('path/to/logo.png') ->setResizeToWidth(60);

$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(400) ->setForegroundColor(new Color(0, 123, 255)); // couleur bleue

$writer = new PngWriter();$result = $writer->write($qrCode, $logo);

header('Content-Type: image/png');echo $result->getString();?>


3. Bibliothèque chillerlan/php-qrcode (légère et rapide)

Un excellent choix si vous avez besoin d'une dépendance minimale et de hautes performances. La bibliothèque supporte tous les modes d'encodage standard, les masques et les niveaux de correction d'erreurs. Idéale pour les projets à forte charge.



Installation

composer require chillerlan/php-qrcode


Exemple de génération

<?phprequire 'vendor/autoload.php';

use chillerlan\\QRCode\\QRCode;use chillerlan\\QRCode\\QROptions;

$options = new QROptions([ 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L,

Recommendations