Geração de QR Codes em PHP: biblioteca phpqrcode e guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Geração de QR Codes em PHP com a biblioteca phpqrcode

\n\n

Os QR Codes se tornaram parte essencial da web moderna. Eles são usados para acesso rápido a links, transmissão de dados de contato, conexão a Wi-Fi e muito mais. Neste artigo, vamos analisar a popular biblioteca PHP phpqrcode, que permite gerar QR Codes de forma fácil e rápida no lado do servidor. Esta é uma solução ideal para um site educacional, onde é necessário demonstrar visualmente o trabalho com QR Codes.

\n\n

O que é phpqrcode?

\n

phpqrcode é uma biblioteca leve, porém poderosa, para geração de QR Codes em PHP puro. Ela não requer a instalação de extensões adicionais (como GD ou Imagick), embora as suporte quando disponíveis. A biblioteca pode criar QR Codes de várias versões (de 1 a 40), com diferentes níveis de correção de erros (L, M, Q, H) e salvar o resultado em PNG, GIF ou JPEG. A principal vantagem é a simplicidade de uso: basta incluir um arquivo e chamar uma função.

\n\n

Instalação e inclusão

\n

Você pode baixar a biblioteca do repositório oficial no GitHub ou SourceForge. Para instalar, basta copiar o arquivo phpqrcode.php para o seu projeto. Uma forma alternativa é via Composer:

\n\n
composer require phpqrcode/phpqrcode
\n\n

Após a instalação, inclua a biblioteca no seu script PHP:

\n\n
<?php\n// Se instalado manualmente\ninclude 'phpqrcode.php';\n\n// Ou via Composer\nrequire 'vendor/autoload.php';\n?>
\n\n

Exemplo básico: geração de QR Code

\n

O exemplo mais simples é criar um QR Code contendo uma string de texto ou URL. Para isso, usa-se o método estático QRcode::png():

\n\n
<?php\n$text = "https://pythonlib.ru";\n$filename = "qrcode.png"; // Se não especificado, exibe a imagem diretamente\n$errorCorrectionLevel = 'L'; // Nível de correção: L, M, Q, H\n$matrixPointSize = 10; // Tamanho do ponto (1-10)\n\n// Geração e salvamento em arquivo\nQRcode::png($text, $filename, $errorCorrectionLevel, $matrixPointSize, 2);\n\necho "QR Code salvo como $filename";\n?>
\n\n

Se o segundo parâmetro for omitido, a biblioteca exibirá a imagem PNG diretamente no navegador:

\n\n
<?php\nheader('Content-Type: image/png');\nQRcode::png('https://pythonlib.ru', false, 'H', 8, 2);\n?>
\n\n

Personalização da aparência: cor e tamanho

\n

O QR Code padrão é preto e branco. Para torná-lo colorido ou alterar o fundo, use os recursos avançados. A biblioteca permite definir cores através de um array:

\n\n
<?php\n$text = "Olá, PythonLib!";\n$filename = "color_qr.png";\n\n// Parâmetros: [R, G, B] para módulos e fundo\n$config = [\n    'module' => [52, 73, 94], // Azul escuro\n    'background' => [236, 240, 241] // Cinza claro\n];\n\nQRcode::png($text, $filename, 'M', 10, 2, false, $config);\n?>
\n\n

Para ajuste preciso do tamanho, use o parâmetro $matrixPointSize (de 1 a 10). Quanto maior o valor, maior o QR Code. Você também pode definir $quietZone (moldura branca ao redor do código) — o último parâmetro no método png().

\n\n

Geração de QR Code para Wi-Fi

\n

Uma das tarefas populares é criar um QR Code para conexão Wi-Fi. O formato dos dados deve seguir a especificação:

\n\n
<?php\n$ssid = "MyHomeNetwork";\n$password = "secret123";\n$encryption = "WPA"; // WPA, WEP ou vazio para rede aberta\n\n$wifiString = "WIFI:T:$encryption;S:$ssid;P:$password;;";\n\nQRcode::png($wifiString, "wifi_qr.png", 'Q', 10, 2);\necho "QR Code para Wi-Fi pronto!";\n?>
\n\n

Criação de QR Code para vCard (contatos)

\n

O QR Code pode conter um cartão de visita vCard. Isso é útil para adicionar rapidamente um contato ao telefone:

\n\n
<?php\n$vcard = "BEGIN:VCARD\\n";\n$vcard .= "VERSION:3.0\\n";\n$vcard .= "FN:Ivan Petrov\\n";\n$vcard .= "TEL:+7-123-456-78-90\\n";\n$vcard .= "EMAIL:ivan@exampl                    

Recommendations