Un generador de código QR PHP basado en la implementación de Kazuhiko Arase, con espacios de nombres, limpiado, mejorado y otras cosas.
También cuenta con un lector de códigos QR basado en un puerto PHP de la biblioteca ZXing.
Atención: ahora también hay un puerto javascript en NPM: @chillerlan/qrcode.
Creación de Códigos QR Modelo 2, Versión 1 a 40
Niveles ECC L/M/Q/H compatibles
Compatibilidad con modo mixto (los modos de codificación se pueden combinar dentro de un símbolo QR). Modos admitidos:
kanji (japonés, Shift-JIS)
hanzi (chino simplificado, GB2312/GB18030) tal como se define en GBT18284-2000
Apoyo de la ICE
numérico
alfanumérico
binario de 8 bits
Doble byte de 13 bits:
Módulos de salida flexibles y fácilmente ampliables, soporte integrado para los siguientes formatos de salida:
GdImage (gráficos rasterizados: avif, bmp, gif, jpeg, png, webp)
ImageMagick (múltiples formatos de imagen compatibles)
Tipos de marcado: SVG, HTML, etc.
Tipos de cadenas: JSON, texto sin formato, etc.
Posdata encapsulada (EPS)
PDF a través de FPDF
Lector de códigos QR (a través de GD e ImageMagick)
PHP 8.2+
ext-gd
para salida basada en QRGdImage
ext-imagick
con ImageMagick instalado
ext-fileinfo
requerido por la salida QRImagick
setasign/fpdf
para el módulo de salida PDF
intervention/image
para salida GD/ImageMagick alternativa
ext-mbstring
opcional:
Para el lector de códigos QR, se requiere ext-gd
o ext-imagick
.
El manual de usuario está en https://php-qrcode.readthedocs.io/ (fuentes)
Puede encontrar una documentación API creada con phpDocumentor en https://chillerlan.github.io/php-qrcode/
La documentación para el contenedor QROptions
se puede encontrar aquí: chillerlan/php-settings-container
Importante: utilice los ejemplos de la rama que coincida con su versión de php-qrcode instalada (v4.x, v5.x, dev-main).
¡Consulte la guía de instalación para obtener más información!
composer require chillerlan/php-qrcode
{ "require": { "php": "^8.2", "chillerlan/php-qrcode": "dev-main#<commit_hash>" } }
Nota: reemplace dev-main
con una restricción de versión, por ejemplo ^5.0
; consulte las versiones para conocer las versiones válidas.
Queremos codificar este URI para un autenticador móvil en una imagen de código QR:
$data = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net';// rápido y sencillo:echo '<img src="'.(new QRCode)->render($data).'" alt="Código QR" />';
Espera, ¿qué fue eso? ¡Por favor otra vez, más lento! Consulte Uso avanzado en el manual. Además, eche un vistazo a la carpeta de ejemplos para ver más ejemplos de uso.
Usar el lector de códigos QR incorporado es bastante sencillo:
// generalmente es una buena idea envolver el lector en un bloque try/catch porque eventualmente arrojarátry{ $resultado = (new QRCode)->readFromFile('path/to/file.png'); // -> DecoderResult// ahora puedes usar la instancia del resultado...$content = $resultado->data; $matriz = $resultado->getMatrix(); // -> QRMatrix// ...o simplemente convertirlo en una cadena para obtener el contenido:$content = (string)$resultado; }catch(Throwable $e){ // ¡upsies!}
Hola, ¡mira algunos de mis otros proyectos que son mucho más geniales que los códigos qrcode!
js-qrcode: un puerto javascript de esta biblioteca
php-authenticator: una implementación de Google Authenticator (ver ejemplo de autenticador)
php-httpinterface: una implementación de PSR-7/15/17/18
php-oauth: una biblioteca cliente OAuth 1/2, totalmente compatible con PSR-7/PSR-17/PSR-18
php-database: un cliente de base de datos y generador de consultas para MySQL, Postgres, SQLite, MSSQL, Firebird
php-tootbot: una biblioteca de bots de Mastodon (ver @dwil)
No me hago responsable de CPU fundidas, aplicaciones engañosas, inicios de sesión fallidos, etc. ¡Úselo bajo su propio riesgo!
Partes de este código están trasladadas a PHP desde el proyecto ZXing y tienen la licencia Apache, versión 2.0.
La documentación está bajo la licencia Creative Commons Attribution 4.0 International (CC BY 4.0).
La palabra "Código QR" es una marca registrada de DENSO WAVE INCORPORATED
https://www.qrcode.com/en/faq.html#patentH2Title