Escrevendo QrCode com PHP
Olá pessoas,
Hoje vou mostrar como usar a biblioteca endroid/qrcode para criar qrcode usando PHP. Não encontrei uma documentação muito vasta da biblioteca, então vou compartilhar aqui algumas coisas que aprendi.
Primeiramente, o que qrcode?
Qr code é um código de barra em duas dimensões, criado no Japão, no qual o código é convertido para texto, a partir de programas de leituras.
No Android eu indico dois softwares:
- Barcode Scanner - Um scanner mais simples e rápido
- Powerful QR Code Scanner A+ - Um scanner mais completo, que permite inclusive, visualizar os resultado do scan em texto puro (muito util quando formos trabalhar com contatos e agenda).
Para iniciarmos, tenha certeza de ter a extensão GD, instalada. No debian e derivados é sudo apt-get install php5-gd
.
Então vamos por a mão no código.
Vamos começar, crie uma pasta do projeto e utilize o composer para adicionar o pacote do endroid/qrcode com: composer require endroid/qrcode
Não vamos criar um aplicativo muito completo, a ideia é usar o endroid/qrcode para criar qrcode, e não sobre as melhores práticas de programação.
Crie o arquivo index.php usando touch index.php
. E deixe um servidor embutido do PHP rodando: php -S localhost:8000 &
Agora edite o arquivo index.php com o seguinte trecho:
Até aqui será o bastante para ter um Qrcode do conteudo do metodo “setText”. Mas vamos incrementar um pouco mais as coisas.
Vocẽ pode criar um arquivo de imagem, e então salvar essa imagem em disco. Bastando substituir o getDataUri()
por render($filename)
, onde $filename
e o caminho completo e nome do arquivo.
Ajuste o setErrorCorrection('low')
até encontrar um que funcione bem. Por aqui, em testes em Androids e iPhones, o ‘low’ foi o que funcionou melhor.
Para compartilhar contatos e eventos do calendário, utilize o template abaixo:
Contato
|
|
Evento
|
|
Aqui as datas devem estar formatadas assim: AnoMesDiaTHoraMinutoSegundo
. Por exemplo, um evento que será dia 31/01/2017 às 9:35 ficará : 20170131T093500
.
Caso utilize o DateTime
do PHP a saída será:
|
|
Qualquer dúvida, deixe aí nos contatos.
Até a próxima.