Generación dinámica de un código QR con PHP [cerrado]
98
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?
¡No reinventes la rueda! Las siguientes respuestas son perfectas
Jordan Arseno
4
Akor: ¿podrías rechazar mi respuesta? Google ha desaprobado la API en la que se basa mi respuesta, por lo que tiene poco propósito de ahora en adelante.
¿Existe alguna limitación para el uso de la API de Google? Me refiero a limitaciones como: cantidad de solicitudes en un tiempo determinado, etc.
Lobo
11
Cabe señalar que esto ha quedado obsoleto. Google planea continuar el soporte hasta 2015. Así que, como siempre, advertencia emptor.
blainarmstrong
4
@Lobo Según su documentación : " No hay límite en la cantidad de llamadas por día que puede realizar a la API de Google Chart. Sin embargo, nos reservamos el derecho de bloquear cualquier uso que consideremos abusivo ".
Alexandru Guzinschi
3
Encuentro respuesta por @abaumg mejor, ya que no depende 3 partes como Google ...
AROD
4
Septiembre de 2019: ¡todavía funciona a partir de ahora!
Anupam
87
La forma más sencilla de generar códigos QR con PHP es la biblioteca phpqrcode .
+1 esto responde la pregunta más de cerca, puede generar el código QR por su cuenta, sin estar limitado por los límites de Google impuestos para las solicitudes. Esto también asegurará que su sitio web funcione, incluso cuando cambie el contrato de punto final de Google.
Sunny R Gupta
Advertencia justa: parece que esta biblioteca puede estar "muerta"; el autor no la ha actualizado desde octubre de 2010 y tiene un par de parches en el rastreador de problemas que los usuarios de la biblioteca deberían considerar aplicar antes de usar la biblioteca.
CubicleSoft
pero cómo convertirlo en estándar mvc alguna idea !!!!
saurabh kamble
@CubicleSoft creo que el desarrollador se tomó en serio su comentario y lo actualizó de inmediato
mokNathal
@mokNathal: no veo nada diferente aquí. La versión más reciente disponible en la página de descargas sigue siendo de 2010.
CubicleSoft
24
La biblioteca phpqrcode es muy rápida de configurar y la documentación de la API es fácil de entender.
esta biblioteca no parece funcionar para una variedad de entradas, aunque el texto pequeño y simple está bien
duckduckgo
¿Puede darnos un ejemplo?
RafaSashi
nada mucho, cuando hago $ codeContents = "www.example.com" está bien, pero si hago $ codeContents = "www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttIr1B0=" no mostró la imagen correcta.
duckduckgo
No puedo reproducir el error. Funciona bien con QRcode :: png ('www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttI r1B0 ='); tal vez tenga algo que ver con los encabezados
RafaSashi
2
¿Puedo usar la biblioteca php-qrcode con fines comerciales, como para desarrollar un sitio web que requiera código qr en parte?
Suneeta Singh
15
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
useEndroid\QrCode\QrCode;
$qrCode =newQrCode();
$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 =newResponse($qrCode->get(),200, array('Content-Type'=> $qrCode->getContentType()));
Iwazaru señor, ¿cómo puedo usar 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?
Como el setTextmé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.
Iwazaru
Iwazaru , tengo la respuesta, señor ...
Quieres compartirlo ;)
Iwazaru
1
Claro :) Usé implode () en php para combinar todos los datos, luego explotar () si es necesario. Eso es señor :)
10
qrcode-generator en Github. Guión más simple y funciona a la perfección.
Pros:
Sin dependencia de terceros
Sin limitaciones para el número de generaciones de códigos QR
No puedo encontrar ningún documento sobre esto, ¡pero se ve genial!
Björn C
@ praba230890 ¿podría proporcionar algunos ejemplos más con este script? Estoy tratando de obtener información de contacto en un código QR de 300x300 px. He instalado / descargado el script en mi localhost y el sample_html.php funciona. Pero los otros dos no. mi japonés no es tan bueno (ok, usaré el traductor de Google)
alex
oh, ¿y sería esto más rápido / mejor que la biblioteca phpqrcode?
alex
es desesperado.
navjot singh
5
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 qrencodepara 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.
¿Qué sucede si vas ahttp://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Doktor J
escapeshellarg explicado aquí (para aquellos que se preguntan) - stackoverflow.com/a/22739494/195722 . Personalmente, no pagaría un comando cada vez (especialmente para una generación de cara al público) y definitivamente usaría expresiones regulares para asegurarme de que lo que pasaron fuera una cadena que estaba esperando.
Natalie Adams
funciona bien en ubuntu 16.04
Asuquo12
4
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.
Estoy usando el complemento Jquery github.com/lrsjng/jquery-qrcode desde hace un tiempo, también bastante. Sin embargo, la salida es solo binaria. Entonces, si necesita generar y guardar una imagen como PNG, no ayudará demasiado. Es por eso que la mayoría de los desarrolladores que leen esta pregunta necesitan PHP.
Kai Noack
Es posible descargar una imagen de datos generada por JS al 100% en el cliente.
Quinn Demandado
Perdón por no ser claro. Quise decir "guardar en el servidor", no es posible solo con Javascript.
Respuestas:
Vale la pena agregar que, además de la biblioteca de códigos QR publicada por @abaumg , Google proporciona una
API de códigos QRAPI de códigos QR muchas gracias a @Toukakoukan por la actualización del enlace .Para usar esto, básicamente:
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í:Manifestación:
fuente
La forma más sencilla de generar códigos QR con PHP es la biblioteca phpqrcode .
fuente
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.php1. Codificador de código QR
primero incluya la biblioteca de su ruta local
luego para generar la imagen directamente como secuencia PNG, por ejemplo:
para guardar el resultado localmente como una imagen PNG:
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://
)fuente
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:
Uso:
fuente
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:
fuente
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.
Luego en el html cargo la imagen:
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.
fuente
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.
fuente