PHP decodificar Códigos QR

En el articulo te enseñaremos un script con php que te va permitir decodificar codigos QR. Será útil a la hora de querer leer los datos guardados en una imagen que contenga un código QR.
PHP: Potente y versátil. PHP es un lenguaje de programación ampliamente utilizado en el desarrollo web, conocido por su flexibilidad y capacidad de integración con bases de datos y sistemas de gestión de contenidos. Con PHP, puedes crear aplicaciones web dinámicas y funcionales, desde simples páginas web hasta complejas aplicaciones empresariales. Aprende PHP y abre las puertas a un mundo de posibilidades en el desarrollo web.
En un tutorial anterior vimos como generar codigos QR con PHP y HTML.
Para decodificar código QR solo se necesitan 3 pasos:
- Crear un formulario HTML para enviar la imagen del código QR.
- Descargar la librería para leer los códigos QR
- Crear un archivo PHP que se encargue de leer los códigos QR.
Paso 1: Crear un formulario HTML para enviar la imagen del código QR
Para este paso lo que haremos es un archivo llamado index.php, el cual contendrá el formulario para enviar los datos al lector de códigos QR.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Decodificar códigos QR con PHP</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <link rel="stylesheet" type="text/css" href="qr.css"> </head> <body class="bg"> <div class="container"> <br><br><br> <div class="row"> <div class="col-md-6 offset-md-3 card"> <div class="panel-heading"> <h1>Decodificar códigos QR</h1> </div> <hr> <form action="decode.php" method="post" enctype="multipart/form-data"> <input type="file" name="qrimage" id="qrimage" class="form-control" required=""><br> <input type="submit" class="btn btn-md btn-block btn-info" value="Enviar datos" name=""> </form> </div> </div> </div> </body> </html>
Creando archivo llamado qr.css, para darle una mejor apariencia a nuestro formulario.
html, body{ width: 100%; height: 100; } .bg{ background-image: url('images/bg.jpg'); height: 100%; background-position: center; background-repeat: no-repeat; background-size: cover; } .card{ background-color: white; padding: 20px; box-shadow: 10px 10px 5px #888; border-radius: 15px; }
En el paso anterior he creado un formulario para enviar la imagen que contiene un código QR. Dicho archivo se encarga de enviar los datos del formulario a el archivo nombrado decode.php
Paso 2: Descargar la librería para leer los códigos QR
Para descargar la librería desde Github, he utilizado un manejador de dependencias como los es composer. La instalación de la librería es realmente simple, solo debes abrir tu consola y colocamos el siguiente comando:
composer require khanamiryan/qrcode-detector-decoder
Paso 3: Crear un archivo PHP que se encargue de leer los códigos QR
Luego de haber descargado la librería que se encargará de leer los códigos QR, entonces procederé a crear un archivo llamado decode.php, el cual recibe los datos del formulario, para poder leer el código QR.
<?php namespace Zxing; if ($_SERVER['REQUEST_METHOD']!='POST'){ header('location: index.php'); die(); } require("vendor/autoload.php"); $qrcode= new QrReader($_FILES['qrimage']['tmp_name']); $text= $qrcode->text(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Decodificar códigos QR con PHP</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <link rel="stylesheet" type="text/css" href="qr.css"> </head> <body class="bg"> <div class="container"> <br><br><br> <div class="row"> <div class="col-md-6 offset-md-3 card"> <div class="panel-heading"> <h1>Decodificar códigos QR</h1> </div> <hr> <p><strong>Datos del código QR:</strong></p> <p><?php echo $text;?></p> <hr> <a href="index.php">Decodificar otro</a> </div> </div> </div> </body> </html>
En este paso obtenemos el texto contenido en la imagen del código QR.
Bien, esto sería todo para decodificar un código QR con PHP, de esta forma muy fácil se puede crear un decodificador de códigos QR. Puedes personalizar este código de acuerdo a tus necesidades o requerimientos.
Si te gusta el contenido no te olvides se seguirnos en nuestra fanpage Codigo Fuente a diario subimos contenido variado sobre Tecnología, Análisis, Diseño, Programación, Script, Hacking y Sistemas Web.
Deja una respuesta