Generando códigos QR con PHP y CodeIgniter 3

- Andrés Cruz

Generando códigos QR con PHP y CodeIgniter 3

Los Códigos QR son un elemento fundamental hoy en día, no es raro ver un código QR en los productos que compramos día a día como los alimentos y así como en cualquier equipo electrónico y cualquier objeto que podamos consumir.

El código QR es un código legible por otros dispositivos como computadores o lo más común hoy en día, celulares o tabletas con el objetivo de consumir la información que está contenida dentro del mismo mediante una aplicación como ya hicimos anteriormente en una app Android con la cual empleando la cámara de nuestro dispositivo sirva como scanner, reader o lector de códigos QR cómo puedes consultar en nuestro blog y descargar el ejemplo en nuestra cuenta en Github:

Creando nuestro generador QR con CodeIgniter

En esta sección veremos cómo generar un código QR empleando una librería gratuita para CodeIgniter (ya que no hay una API que trabaje de manera nativa con CodeIgniter, se emplea la de un tercero) y además veremos un extra en donde explicaremos cómo emplear una famosa librería para PHP que nos permitirá generar códigos QR o crear nuestro propio generador QR.

Ahora veamos cómo generar un código QR desde una aplicación web realizada específicamente con el framework PHP CodeIgniter.

La generación de QR desde una aplicación web en conjunto con el lector QR personalizado en Android convierten a este dúo en una poderosa combinación.

Como muchas otras cosas o funcionalidades que queramos agregar a un proyecto CodeIgniter, debemos agregar una librería de un tercero; para esta entrada emplearemos la librería: Codeigniter PHP QR Code que como puedes ver, está alojada en GIT y está relativamente actualizada (aunque la librería es en verdad bastante reducida).

Instalando la librería Codeigniter PHP QR Code en CodeIgniter

Una vez descargada la librería la descomprimimos y navegamos hasta encontrar una carpeta llamada qrcode la cual copiamos dentro de la carpeta library de nuestro proyecto; con esto tenemos instalado esta librería de generación QR en nuestro proyecto y podemos empezar a generar nuestros propios QR como ejemplificamos en la siguiente sección.

Con ejemplos + generando un QR desde CodeIgniter

Para generar un QR podemos emplear un código similar al siguiente:

$this->load->library('ciqrcode');

$params['data'] = 'This is a text to encode become QR Code';
$params['size'] = 10;
$params['savename'] = FCPATH.'tes.png';
$this->ciqrcode->generate($params);

Un código completo en una aplicación de ejemplo en CodeIgniter sería así:

   function generar_qr($user_id) {

        //hacemos configuraciones
        $params['data'] = $user_id;
        $params['level'] = 'H';
        $params['size'] = 10;

        //decimos el directorio a guardar el codigo qr, en este 
        //caso una carpeta en la raíz llamada qr_code
        $params['savename'] = FCPATH . "uploads/qr_code/qr_$user_id.png";
        //generamos el código qr
        $this->ciqrcode->generate($params);

        $data['img'] = "qr_$user_id.png";

        $this->load->view('admin/header');
        $this->load->view('admin/codigo_qr', $data);
        $this->load->view('footer');
    }

Y parte de la vista:

<aside class="right-side">

    <!-- Main content -->
    <section class="content">
        <div class="panel">
            <header class="panel-heading">
                
            </header>
            <div class="panel-body">
                <a download="<?php echo $img ?>" href="<?php echo base_url() . "uploads/qr_code/" . $img ?>" title="<?php echo $img ?>">
                    <img class="box-center" src="<?php echo base_url() . "uploads/qr_code/" . $img ?>" />
                </a>
                <p class="text-center">Clic sobre la imagen para descargar</p>
            </div>
        </div>
    </section>

</aside>

Como puedes ver, primero cargamos la librería con $this->load->library('ciqrcode');, luego con $params['data'] indicamos el contenido a codificar, el tamaño con $params['size'] el directorio y nombre en donde se guardará nuestra imagen $params['savename'] y finalmente generamos el QR con $this->ciqrcode->generate($params); y poco más, todos los demás parámetros son opcionales.

Extra: Generar códigos QR en tu sitio web con PHP nativo

Como indicamos en un inicio, ahora vamos a ver un extra, en donde veremos como crear nuestro generador QR con una librería y PHP puro.

Existen varias librerías externas que podemos emplear para generar códigos QR en nuestra aplicación; una de ellas es esta: phpqrcode que podemos descargar gratuitamente y nos permite generar códigos QR como hicimos en la parte anterior del tutorial con CodeIgniter.

Adaptando la librería QR a nuestras necesidades

Trabajar con esta librería es sencillo; o en otras palabras, es extremadamente sencillo, no tenemos que editar nada, ya viene todo montado, solo debemos descargar la librería anterior y una vez que descomprimimos la misma extraemos de su interior el archivo index.php y phpqrcode.php y los copiamos en una carpeta en nuestro hosting que en nuestro caso vamos a llamar phpqrcode:

phpqrcode proyecto QR

La carpeta temporal que ves en la imagen anterior es generada por la misma aplicación; luego nos vamos a la línea 33 de nuestro index.php en la que aparece el siguiente include:

    include "qrlib.php";    

Y la cambiamos por:

    include "phpqrcode.php";    

Y con esto estamos listo, si lo accedemos desde nuestro hosting; en nuestro caso la URL:

http://localhost/phpqrcode/index.php

phpqrcode proyecto QR hosting

Desde aquí podemos generar nuestros propios códigos QR empleando PHP nativo.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.