Back-End

22 fev, 2019

Criando QR Codes em PHP com o chillerlan/php-qrcode

Publicidade

Fala galera, tudo bom? Estamos de volta com a série de artigos sobre bibliotecas úteis para quem desenvolve em PHP. Hoje mostraremos uma biblioteca muito interessante para você que precisa gerar QR Codes seja para slides, para sua aplicação ou para outras utilidades.

A biblioteca que utilizaremos é a chilleran/php-qrcode. Para utilizá-la você precisa do PHP 7.2 ou superior, também a biblioteca GD.

Para instalar a biblioteca GD em distros debian like por exemplo:

Para PHP 7.2

sudo apt-get install php7.2-gd

Para PHP 7.3

sudo apt-get install php7.3-gd

Caso você use windows, basta inserir a seguinte linha no php.ini

extension=php_gd2.dll

Para instalar a biblioteca é muito simples, como as outras bibliotecas que mostramos. Criaremos uma pasta qrcode e depois instalaremos através do composer.

composer require chillerlan/php-qrcode

A utilização para criar os QR Codes é simples. Basta criar por exemplo uma variável com uma URL e então gerar a imagem. No exemplo abaixo podemos ver como seria essa geração para um site na web. Em um arquivo index.php

<?php

require_once 'vendor/autoload.php';

use chillerlan\QRCode\QRCode;

$data = 'https://imasters.com.br'; //inserindo a URL do iMasters

echo '<img src="'.(new QRCode)->render($data).'" />'; //gerando o QRCode em uma tag img

Para verificar o QR Code gerado, usando o servidor PHP embutido, basta executar no seu console.

php -S localhost:80

Depois em seu navegador, basta você digitar: localhost e aparecerá algo assim:

Você pode por exemplo, utilizar outras versões de QR Code ou incluir um error correction feature level. para isso basta instanciar a classe de Options: QROptions. O código do index.php ficaria mais ou menos assim:

<?php

require_once 'vendor/autoload.php';

use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;

$data = 'https://imasters.com.br'; //inserindo a URL do iMasters

$options = new QROptions([
'version' => 5, //versao do QRCode
'eccLevel' => QRCode::ECC_L, //Error Correction Feature Level L
]);

echo '<img src="'.(new QRCode($options))->render($data).'" />'; //gerando o QRCode em uma tag img

O resultado seria assim:

Caso você queira por exemplo salvar o QR Code em .png, basta salvar o conteúdo renderizado como .png

<?php

require_once 'vendor/autoload.php';

use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;

$data = 'https://imasters.com.br'; //inserindo a URL do iMasters

$options = new QROptions([
'version' => 5, //versao do QRCode
'eccLevel' => QRCode::ECC_L, //Error Correction Feature Level L
'outputType' => QRCode::OUTPUT_IMAGE_PNG, //setando o output como PNG
'imageBase64' => false //evitando que seja gerado a imagem em base64
]);

file_put_contents('image.png',(new QRCode($options))->render($data)); //salvando a imagem como png

O resultado seria algo assim:

 

Espero que vocês tenham gostado e que essa biblioteca ajude você a gerar seus QR Codes com facilidade. Um grande abraço e até a próxima