Generador de códigos QR en PHP: biblioteca phpqrcode y alternativas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generador de códigos QR en PHP: revisión de las mejores bibliotecas

Los códigos QR se han convertido en una parte esencial de la web moderna. Se utilizan para acceder rápidamente a enlaces, transferir datos de contacto, autenticarse en servicios e incluso para pagos. Si desarrollas en PHP y deseas implementar la generación de códigos QR en tu sitio, no necesitas reinventar la rueda: existen bibliotecas probadas que realizan esta tarea en solo un par de líneas de código.

En este artículo, analizaremos tres soluciones populares: la clásica phpqrcode, la moderna endroid/qr-code y la ligera chillerlan/php-qrcode. Aprenderás cómo instalar cada una, generar un código QR y mostrarlo en pantalla o guardarlo en un archivo.



1. Biblioteca phpqrcode (opción clásica)

Esta es una de las primeras bibliotecas para generar códigos QR en PHP. No requiere dependencias externas, funciona "de fábrica" y todavía se utiliza en muchos proyectos heredados. Su principal desventaja es la falta de soporte para los estándares modernos PSR y Composer (aunque se puede instalar manualmente).



Instalación

Descarga el archivo desde SourceForge y descomprímelo en la carpeta de tu proyecto. Incluye el archivo qrlib.php:

require_once 'phpqrcode/qrlib.php';


Ejemplo de generación y salida PNG

<?phprequire_once 'phpqrcode/qrlib.php';

// Datos para codificar$text = 'https://pythonlib.ru';

// Ruta para guardar el archivo$filename = 'qrcode.png';

// Generación de código QR con nivel de corrección L (7%) y tamaño 10QRcode::png($text, $filename, QR_ECLEVEL_L, 10, 2);

// Mostrar la imagen en el navegadorheader('Content-Type: image/png');QRcode::png($text, false, QR_ECLEVEL_L, 10, 2);?>

El segundo parámetro false significa que la imagen se muestra directamente en el navegador, no se guarda en un archivo.



2. Biblioteca endroid/qr-code (moderna y flexible)

Esta es la solución más popular en Packagist. La biblioteca es compatible con PSR-4, se integra fácilmente con cualquier framework (Laravel, Symfony) y permite personalizar colores, tamaño, márgenes e incluso agregar un logotipo.



Instalación mediante Composer

composer require endroid/qr-code


Ejemplo básico de generación

<?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);

// Mostrar en el navegadorheader('Content-Type: '.$result->getMimeType());echo $result->getString();?>


Código QR con logotipo

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

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

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

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

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


3. Biblioteca chillerlan/php-qrcode (ligera y rápida)

Una excelente opción si necesitas una dependencia mínima y un alto rendimiento. La biblioteca admite todos los modos de codificación estándar, máscaras y niveles de corrección de errores. Es ideal para proyectos de alta carga.



Instalación

composer require chillerlan/php-qrcode


Ejemplo de generación

<?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