Hoy traigo un ejemplo de como crear códigos QR de forma sencilla usando el paquete de PHP endroid/qr-code y jQuery. Usaré jQuery para darle un toque de dinamismo con el uso de ajax, además usaré Bootstrap 4 para que se vea bien.

Empezamos con instalar y explicar el paquete endroid/qr-code. Es una librería que genera un código QR a partir de un string. Además permite exportar el código QR en los formatos (PNG, SVG, EPS, PDF, Formato Binario), en este caso usaré PNG. En su web explican más a fondo.



Para instalar usaremos composer:

$ composer require endroid/qr-code

Creamos el siguiente código PHP:

//Llamare el autoload de la clase que genera el QR
include('vendor/autoload.php');
use Endroid\QrCode\QrCode;

//Recibo las variables pasadas por el metodo post
$textqr = $_POST['textqr'];
$size = isset($_POST['size']) ? $_POST['size'] : 300;

//Creo la instancia de la clase QrCode del paquete
$qrCode = new QrCode($textqr);

//Establecer el tamaño del QR
$qrCode->setSize($size);

//Salida en formato de texto 
$image= $qrCode->writeString();

//Codifico la imagen en base64
$imageData = base64_encode($image);

//Imprimo la imagen en base64
echo '<img src="data:image/png;base64,'.$imageData.'">';

Finalmente el código jQuery:

<script>
    $( "#formQR" ).submit(function( event ) {
        let textqr = $("#textqr").val();
        let size = $("#size").val();
        let parametros = {"textqr" : textqr, "size" : size};
        
        if(textqr === ''){
            alert('Inserta un texto en el campo');
            return false;
        }

        $.ajax({
            type: "POST",
            url: "qr.php",
            data: parametros,
            success: function(datos){
                $(".result").html(datos);
            }
        });
        
        event.preventDefault();
    });
</script>

Este es el ejemplo final:

generar-codigo-qr

El código completo lo pueden bajar aquí: QR Code