Crear códigos QR con PHP (QR codes) para Android Iphone y otros dispositivos móviles

El post ser√° breve, por que me caigo del sue√±o y tampoco hay mucho que contar. Voy a explicar como generar c√≥digos QR a partir de strings, que pueden ser URL’s (yo lo he usado con este fin) con la libreria “phpqrcode.php”.

La libreria en cuestión la podeis encontar en http://phpqrcode.sourceforge.net/ (Yo he utilizado la versión reducida, que para hacer lo más simple nos sobra). Una vez descargada, y descomprimida solo tenemos que llamar al método QRcode::png($string_a_convertir, $ruta_imagen_destino); Cabe destacar que para que esta libreria funcione hay que tener instalada previamente la libreria GD de la cual ya hemos hablado en otros posts (lo más común es que se encuentre instalada en el servidor por defecto). Podeis ver el funcionamiento en el siguiente ejemplo:

...
require('phpqrcode.php');
...
$url = "http://polplabs.com/P";
$img = "imagenes/qr/codigo.png"
QRcode::png($url, $img);  // Crea y guarda un png con el código QR
...

Este sería el resultado:

Ejemplo de código QR

Espero que os haya sido útil la información que si bien no es muy compleja, en un momento dado os puede ahorrar tiempo de busqueda por la web. ¡Hasta la próxima!

This entry was posted in PHP. Bookmark the permalink.

22 Responses to Crear códigos QR con PHP (QR codes) para Android Iphone y otros dispositivos móviles

  1. xdeamx says:

    La png ke se adjunta debe tener algo especial? tama√±o, colores, etc… o por cada pq debo a√±adir un png diferente?…solo se puede con urls? gracias!

  2. s3ph1r0ht says:

    voy a probarlo, después te aviso como me fue, gracias por el aporte

  3. A says:

    Prefiero generar codigos QR directamente con la chart API de google…
    code.google.com/intl/es/apis/chart/infographics/

  4. David says:

    ¬øQu√© ventaja trae usar Google? Llegado el caso, ¬øpodr√≠a “capar” nuestras aplicaciones basadas en su API? ¬øChupa muchos recursos de serivdor el generador de c√≥digos QR que se propone en este post?

  5. David says:

    Y por cierto…. Much√≠simas felicidades al autor del blog. Estoy en √©l desde hace unos minutos y es fant√°stico :D

  6. s3ph1r0ht says:

    estoy intentando aplicar tu c√≥digo a todo un formulario con 10 entradas (Nombre, AP, AM, TEL, … etc) pero aun no logro que me genere alg√∫n qrcode, ya he instalado de todo, espero me puedas ayudar y decirme en que parte ir√≠a el c√≥digo.

    Gracias!!

    • enacefio says:

      Perdón por el retraso, aveces tardamos en validar los comentarios demasiado y esto es lo que pasa.

      ¿¿Te da algún error?? Puedes aportar algún dato más o enseñarnos el código?
      Un saludo!

    • nephesh says:

      Prueba en poner a cada caja de texto una variable distinta y entes de mandar la información a la $url concatena todas las variables.

      require(‘phpqrcode.php’);

      $url=$nombre $apellido $…
      $img = “imagenes/qr/codigo.png”
      QRcode::png($url, $img);

  7. Alberto says:

    Hola. ME gustaría saber si es posible que el QR generado se guarde en una varible, ya que me interesa crear muchos códigos a meter en un PDF después, y si almaceno en archivos, el tiempo de la tarea es muy elevado.

    Gracias

    • enacefio says:

      Hola Alberto!
      Pues no tengo ni idea de como funcionará la librería que estas utilizando para crear los PDF. Pero me imagino que tendrá alguna función para insertar imágenes a partir de su ruta. Si es este el caso, te sugiero que crees un array y vayas acumulando los valores de $img para después incluirlo en el archivo PDF.
      Otra posibilidad que conozco, ser√≠a la de almacenar la imagen utilizando la librer√≠a GD, exactamente con la funci√≥n “imagecreatefrompng($img)”. Esta librer√≠a viene incluida en la mayor√≠a de servidores por lo que no tendr√°s muchos problemas.

      Un saludo!!! Espero haberte ayudado!

      • Alberto says:

        Hola enacefio, gracias por tu respuesta.

        Estoy mirando mirando el asunto, y la verdad es que ando algo perdido todavía. El caso es que lo de crear un array de de $img parece buena solución. Para ello, el problema es que con la librería de phpqrcode, se usa el siguiente comando para generar el qr:
        QRcode::png($qr, ‘test.png’);
        Con ello, estás creando un archivo de imagen. También puede mostrar por navegador el resultado, pero en ese caso creo que también se crea el archivo de alguna manera.

        Voy a mirar con la librería que me comentas, a ver si soy capaz de guardar en una variable el qr!

        Gracias otra vez.

  8. FcoSalazar says:

    Que tal yo quiero hacer algo similar a lo de alberto, no se si pudiste hacerlo y si pudieras compartir el codigo.

  9. diego says:

    esa api de Google es un golazo

    eso simplemente anda, insertando código php es un lujo.
    Saludos

  10. Ponki says:

    Hola, quisiera saber como utilizar la libreria para generar un qrcode pero con varios parametros. Ej email, subjet y texto del mensaje. Es que he visto varias aplicaciones en la web que tienes varios tipos de forma de crear un qrcode:
    Telefono, Texto, sms, card y cada una tiene un formulario diferente para captar los datos pero despues como le paso esa informacion al obj qrcode para generar el qrcode, hay algun tipo de caracter especial para separar los datos ?
    Saludos y gracias

  11. enacefio says:

    Pues la verdad que no se si hay algún formato especifico que indique que la cadena que se va a codificar es un correo, un teléfono u otra cosa.
    Pero vamos imagino que si lo hay se le pasar√° ya la cadena preformateada para codificarla.
    Saludos!!!

  12. Jose Luis says:

    Con el metodo QRcode::png solo funciona para url y texto, pero no con tfnos. Ni
    sms. Si alguien sabe como hacerlo se agradeceria la ayuda. Saludos

  13. Zeth says:

    Espero funcione el siguiente código. Saludos.
    █▀▀▀▀▀█░░░▀░░▀█░▀▄▄▀█░█▀▀▀▀▀█
    █░███░█░▄▀▀▄▄█▀█▀██▀▀░█░███░█
    █░▀▀▀░█░▄░▄▀▄▄█▀█▄▄░█░█░▀▀▀░█
    ▀▀▀▀▀▀▀░█▄█░█░█░█▄▀▄█░▀▀▀▀▀▀▀
    ░██░▄▄▀▄▄▄█▀▄░▀▀▀▀░▀█░██░▀▄▄▄
    █▀░█▄▄▀█▄█▀░░▀▄▄█▀▀▄█▄▄█▄▄▀░▀
    ░▄█▀▀█▀██▀▄░█▄▀██░░▄▄▀█▀░█░▀▄
    ▀▄▄▄██▀▀█▀▀░░░▀█░▀██▄██▀▄█▀░█
    ░▄▀░░█▀██▀█▄░░▄░███▀▀░█▀░░░▀█
    ▀▀▄▄█░▀█░▀░▄▄░▀▄█▀█▀▄▄▄▄▄▄▀▄▀
    ▀▀▀▀░▀▀░▄▄░▀▀▀▀▄█▄░▄█▀▀▀██░█▄
    █▀▀▀▀▀█░░█▀██░░▀█▄░▄█░▀░██▀▄█
    █░███░█░░░▀▄██░▀░▀░███▀██▄▄▄░
    █░▀▀▀░█░██▀▀░▄█▀░░█░█▄▄▀▀█░▀▀
    ▀▀▀▀▀▀▀░░▀░░▀▀▀▀░░░░▀░░▀▀▀░░▀
    Made with http://www.pictoriano.com/p/nhFVhoBuu8n

  14. jose javier says:

    Puedes poner QR para telefonos con el siguiente texto: TEL:666777888 ,

    para sms tienes que poner el texto: SMSTO:666777888:esto es una prueba

  15. Hay alguna forma de cambiarle el color al código generado?

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>