Como generar QR-Codes con PHP

Básicamente lo que haremos es usar una librería para crear los QR-Codes que necesitamos. La librería se llama PHP QR Code, y nos permite crear todo tipo de QR-Codes como URLs, teléfonos, emails, etc…

Su uso básico es bastante simple:

include 'phpqrcode/qrlib.php';

// El nombre del fichero que se generará (una imagen PNG).
$file = 'jr-qrcode.png'; 
// La data que llevará.
$data = 'http://joserobinson.com/'; 

// Y generamos la imagen.
QRcode::png($data, $file);

Al generar la imagen podemos especificar otros dos parámetros: la capacidad de corrección de errores y el tamaño de la imagen.

Un ejemplo seria este:

include 'phpqrcode/qrlib.php';

$file = 'jr-qrcode.png'; 
$data = 'http://joserobinson.com/'; 

// El tamaño de la imagen.
$size = 10; 
// Capacidad de corrección de errores.
$level = QR_ECLEVEL_H; 

QRcode::png($data, $file, $level, $size);

El tamaño es un valor entre 1 y 10. La capacidad de corrección de errores soporta 4 valores:

  • QR_ECLEVEL_L: 7% de las claves se pueden restaurar
  • QR_ECLEVEL_M: 15% de las claves se pueden restaurar
  • QR_ECLEVEL_Q: 25% de las claves se pueden restaurar
  • QR_ECLEVEL_H: 30% de las claves se pueden restaurar

Normalmente la librería interpreta el tipo de data automáticamente, si es una url, un email o un texto simple, pero algunos tipos de datos tienen un formato especifico:

// Un telefono:
$data = 'tel:8093334444';

// Un VCard:
// Mas info sobre VCard: http://en.wikipedia.org/wiki/VCard
$data = "BEGIN:VCARD\n"
. "VERSION:2.1\n"
. "N:Robinson;Jose\n"
. "FN:Jose Robinson\n"
. "TITLE:Web Developer\n"
. "TEL;WORK;VOICE:(111) 555-1212\n"
. "END:VCARD";

La web oficial del proyecto es:
http://phpqrcode.sourceforge.net/

Y aquí tienes la documentación de la librería.
PHP QR Code Documentation

RECURSOS

Puedes descargar los ficheros para utilizar el script.

Descargar
CompartirTwitter Facebook Google+ Pinterest LinkedIn Flipboard Delicious Addthis
  • Ernesto

    Hola muchas gracias por el aporte. Me ha servido de mucho.

    Saludos

  • Me complace que te haya servido.

  • Irwin Eguiluz

    Buenas tardes José, primero que nada gracias por el aporte a la comunidad.

    El LOG de php me da el siguiente error “PHP Fatal error: Call to undefined function ImageCreate()” ¿sabes a que se debe eso ó que podría estar haciendo mal?

    Muchas gracias.

  • Hola Irwin,

    Ese error te sale por que te hace falta una libreria de PHP, puede que no este instalada o que simplemente no esta habilitada.

    La libreria se llama GD y es esta:
    http://php.net/manual/en/book.image.php

    Si el problema te da en tu maquina local o en un servidor dedicado la solución es sencilla, pero si es en un hosting reseller lo más probable es que tendrás que cambiar de proveedor.