Estoy intentando generar códigos QR en mi sitio web. Todo lo que tienen que hacer es tener una URL, que proporcionará una variable en mi sitio. ¿Cuál sería la forma más sencilla de hacer esto?
Estoy intentando generar códigos QR en mi sitio web. Todo lo que tienen que hacer es tener una URL, que proporcionará una variable en mi sitio. ¿Cuál sería la forma más sencilla de hacer esto?
Respuestas:
Vale la pena agregar que, además de la biblioteca de códigos QR publicada por @abaumg , Google proporciona unaAPI de códigos QR API de códigos QR muchas gracias a @Toukakoukan por la actualización del enlace .
Para usar esto, básicamente:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
es el tamaño de la imagen QR que desea generar,chl
es la cadena con codificación URL que desea cambiar en un código QR, ychoe
es la codificación (opcional).El enlace, arriba, brinda más detalles, pero para usarlo solo tiene que tener src
una imagen que apunte al valor manipulado, así:
<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8" title="Link to Google.com" />
Manifestación:
La forma más sencilla de generar códigos QR con PHP es la biblioteca phpqrcode .
La biblioteca phpqrcode es muy rápida de configurar y la documentación de la API es fácil de entender.
Además de la respuesta de abaumg, he adjuntado 2 ejemplos PHP
de http://phpqrcode.sourceforge.net/examples/index.php
1. Codificador de código QR
primero incluya la biblioteca de su ruta local
include('../qrlib.php');
luego para generar la imagen directamente como secuencia PNG, por ejemplo:
QRcode::png('your texte here...');
para guardar el resultado localmente como una imagen PNG:
$tempDir = EXAMPLE_TMP_SERVERPATH;
$codeContents = 'your message here...';
$fileName = 'qrcode_name.png';
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;
QRcode::png($codeContents, $pngAbsoluteFilePath);
2. decodificador de código QR
Consulte también el decodificador zxing :
http://zxing.org/w/decode.jspx
Bastante útil para comprobar la salida.
3. Lista de formato de datos
Una lista de formatos de datos que puede utilizar en su código QR según el tipo de datos:
http://
)La biblioteca endroid / QrCode es fácil de usar, está bien mantenida y se puede instalar usando Composer. También hay un paquete para usar directamente con Symfony.
Instalando:
$ composer require endroid/qrcode
Uso:
<?php
use Endroid\QrCode\QrCode;
$qrCode = new QrCode();
$qrCode
->setText('Life is too short to be generating QR codes')
->setSize(300)
->setPadding(10)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setLabel('Scan the code')
->setLabelFontSize(16)
->setImageType(QrCode::IMAGE_TYPE_PNG)
;
// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();
// or create a response object
$response = new Response($qrCode->get(), 200, array('Content-Type' => $qrCode->getContentType()));
setText()
si tengo MÚLTIPLES datos? Por ejemplo, tengo $a = 1
, $b = 2
, $c = 3
?. Necesito usar más de UNA oración o cadena. ¿Cómo puedo hacer eso?
setText
método solo acepta un parámetro, supongo que debería concatenar sus variables en uno antes de pasarlo. Pero no estoy seguro de entender su problema correctamente, tal vez debería abrir un problema en el repositorio de la biblioteca.
qrcode-generator en Github. Guión más simple y funciona a la perfección.
Pros:
He estado usando google qrcode api durante algún tiempo, pero esto no me gustó porque requiere que esté en Internet para acceder a la imagen generada.
Hice una pequeña investigación de línea de comandos y descubrí que Linux tiene una herramienta de línea de comandos qrencode
para generar códigos qr.
Escribí este pequeño guión. Y lo bueno es que la imagen generada tiene un tamaño inferior a 1 KB. Bueno, los datos proporcionados son simplemente una URL.
$url = ($_SERVER['HTTPS'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].'/profile.php?id='.$_GET['pid'];
$img = shell_exec('qrencode --output=- -m=1 '.escapeshellarg($url));
$imgData = "data:image/png;base64,".base64_encode($img);
Luego en el html cargo la imagen:
<img class="emrQRCode" src="<?=$imgData ?>" />
Solo necesitas haberlo instalado. [La mayoría de las aplicaciones de imágenes en Linux lo habrían instalado bajo el capó sin que te dieras cuenta.
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Sé que la pregunta es cómo generar códigos QR usando PHP, pero para otros que buscan una forma de generar códigos para sitios web, hacer esto en javascript puro es una buena manera de hacerlo. El complemento jquery jquery-qrcode lo hace bien.