Generación de códigos QR en PHP con la biblioteca phpqrcode
\n\nLos códigos QR se han convertido en una parte esencial de la web moderna. Se utilizan para acceder rápidamente a enlaces, transferir datos de contacto, conectarse a Wi-Fi y mucho más. En este artículo, analizaremos la popular biblioteca PHP phpqrcode, que permite generar códigos QR de forma fácil y rápida en el lado del servidor. Es la solución ideal para un sitio educativo donde se necesita mostrar visualmente el trabajo con códigos QR.
\n\n¿Qué es phpqrcode?
\nphpqrcode es una biblioteca ligera pero potente para generar códigos QR en PHP puro. No requiere la instalación de extensiones adicionales (como GD o Imagick), aunque las admite si están presentes. La biblioteca puede crear códigos QR de varias versiones (de la 1 a la 40), con diferentes niveles de corrección de errores (L, M, Q, H) y guardar el resultado en PNG, GIF o JPEG. La principal ventaja es la facilidad de uso: basta con incluir un archivo y llamar a una función.
\n\nInstalación y configuración
\nPuede descargar la biblioteca desde el repositorio oficial en GitHub o SourceForge. Para instalarla, simplemente copie el archivo phpqrcode.php en su proyecto. Una forma alternativa es a través de Composer:
composer require phpqrcode/phpqrcode\n\nDespués de la instalación, incluya la biblioteca en su script PHP:
\n\n<?php\n// Si se instaló manualmente\ninclude 'phpqrcode.php';\n\n// O a través de Composer\nrequire 'vendor/autoload.php';\n?>\n\nEjemplo básico: generación de un código QR
\nEl ejemplo más simple es crear un código QR que contenga una cadena de texto o una URL. Para ello, se utiliza el método estático QRcode::png():
<?php\n$text = "https://pythonlib.ru";\n$filename = "qrcode.png"; // Si no se especifica, muestra la imagen directamente\n$errorCorrectionLevel = 'L'; // Nivel de corrección: L, M, Q, H\n$matrixPointSize = 10; // Tamaño del punto (1-10)\n\n// Generación y guardado en archivo\nQRcode::png($text, $filename, $errorCorrectionLevel, $matrixPointSize, 2);\n\necho "Código QR guardado como $filename";\n?>\n\nSi se omite el segundo parámetro, la biblioteca mostrará la imagen PNG directamente en el navegador:
\n\n<?php\nheader('Content-Type: image/png');\nQRcode::png('https://pythonlib.ru', false, 'H', 8, 2);\n?>\n\nPersonalización de la apariencia: color y tamaño
\nEl código QR estándar es en blanco y negro. Para hacerlo colorido o cambiar el fondo, utilice las funciones avanzadas. La biblioteca permite definir colores mediante un array:
\n\n<?php\n$text = "¡Hola, PythonLib!";\n$filename = "color_qr.png";\n\n// Parámetros: [R, G, B] para módulos y fondo\n$config = [\n 'module' => [52, 73, 94], // Azul oscuro\n 'background' => [236, 240, 241] // Gris claro\n];\n\nQRcode::png($text, $filename, 'M', 10, 2, false, $config);\n?>\n\nPara un ajuste preciso del tamaño, utilice el parámetro $matrixPointSize (de 1 a 10). Cuanto mayor sea el valor, más grande será el código QR. También puede definir $quietZone (el borde blanco alrededor del código) como el último parámetro en el método png().
Generación de un código QR para Wi-Fi
\nUna de las tareas más populares es crear un código QR para conectarse a una red Wi-Fi. El formato de los datos debe cumplir con la especificación:
\n\n<?php\n$ssid = "MiRedCasa";\n$password = "secreto123";\n$encryption = "WPA"; // WPA, WEP o vacío para red abierta\n\n$wifiString = "WIFI:T:$encryption;S:$ssid;P:$password;;";\n\nQRcode::png($wifiString, "wifi_qr.png", 'Q', 10, 2);\necho "¡Código QR para Wi-Fi listo!";\n?>\n\nCreación de un código QR para vCard (contactos)
\nUn código QR puede contener una tarjeta de presentación vCard. Esto es útil para agregar un contacto rápidamente al teléfono:
\n\n<?php\n$vcard = "BEGIN:VCARD\\n";\n$vcard .= "VERSION:3.0\\n";\n$vcard .= "FN:Iván Petrov\\n";\n$vcard .= "TEL:+7-123-456-78-90\\n";\n$vcard .= "EMAIL:ivan@exampl También en la biblioteca
Framework CLI para Swift: creación de utilidades de consola en iOS/macOS
SwiftConfig: Gestión de configuración de aplicaciones en Swift
Envío de SMS en Swift (iOS/macOS): API MessageUI y servicios de terceros
Monitoreo de aplicaciones TypeScript: bibliotecas, herramientas y configuración
Zod para TypeScript: guía completa con ejemplos