Генерация QR-кодов на PHP: библиотека phpqrcode и полный гайд

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Генерация QR-кодов на PHP с библиотекой phpqrcode

QR-коды стали неотъемлемой частью современного веба. Они используются для быстрого перехода по ссылкам, передачи контактных данных, подключения к Wi-Fi и многого другого. В этой статье мы разберем популярную PHP-библиотеку phpqrcode, которая позволяет легко и быстро генерировать QR-коды на серверной стороне. Это идеальное решение для образовательного сайта, где требуется наглядно показать работу с QR-кодами.

Что такое phpqrcode?

phpqrcode — это легковесная, но мощная библиотека для генерации QR-кодов на чистом PHP. Она не требует установки дополнительных расширений (например, GD или Imagick), хотя поддерживает их при наличии. Библиотека умеет создавать QR-коды различных версий (от 1 до 40), с разным уровнем коррекции ошибок (L, M, Q, H) и сохранять результат в PNG, GIF или JPEG. Основное преимущество — простота использования: достаточно подключить один файл и вызвать одну функцию.

Установка и подключение

Скачать библиотеку можно с официального репозитория на GitHub или SourceForge. Для установки просто скопируйте файл phpqrcode.php в ваш проект. Альтернативный способ — через Composer:

composer require phpqrcode/phpqrcode

После установки подключите библиотеку в вашем PHP-скрипте:

<?php
// Если установлено вручную
include 'phpqrcode.php';

// Или через Composer
require 'vendor/autoload.php';
?>

Базовый пример: генерация QR-кода

Самый простой пример — создать QR-код, содержащий текстовую строку или URL. Для этого используется статический метод QRcode::png():

<?php
$text = "https://pythonlib.ru";
$filename = "qrcode.png"; // Если не указать, выведет изображение напрямую
$errorCorrectionLevel = 'L'; // Уровень коррекции: L, M, Q, H
$matrixPointSize = 10; // Размер точки (1-10)

// Генерация и сохранение в файл
QRcode::png($text, $filename, $errorCorrectionLevel, $matrixPointSize, 2);

echo "QR-код сохранен как $filename";
?>

Если второй параметр опустить, библиотека выведет PNG-изображение напрямую в браузер:

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

Настройка внешнего вида: цвет и размер

Стандартный QR-код — черно-белый. Чтобы сделать его цветным или изменить фон, используйте расширенные возможности. Библиотека позволяет задать цвета через массив:

<?php
$text = "Привет, PythonLib!";
$filename = "color_qr.png";

// Параметры: [R, G, B] для модулей и фона
$config = [
    'module' => [52, 73, 94], // Темно-синий
    'background' => [236, 240, 241] // Светло-серый
];

QRcode::png($text, $filename, 'M', 10, 2, false, $config);
?>

Для точной настройки размера используйте параметр $matrixPointSize (от 1 до 10). Чем выше значение, тем крупнее QR-код. Также можно задать $quietZone (белая рамка вокруг кода) — последний параметр в методе png().

Генерация QR-кода для Wi-Fi

Одна из популярных задач — создание QR-кода для подключения к Wi-Fi. Формат данных должен соответствовать спецификации:

<?php
$ssid = "MyHomeNetwork";
$password = "secret123";
$encryption = "WPA"; // WPA, WEP или пусто для открытой сети

$wifiString = "WIFI:T:$encryption;S:$ssid;P:$password;;";

QRcode::png($wifiString, "wifi_qr.png", 'Q', 10, 2);
echo "QR-код для Wi-Fi готов!";
?>

Создание QR-кода для vCard (контакты)

QR-код может содержать визитную карточку vCard. Это удобно для быстрого добавления контакта в телефон:

<?php
$vcard = "BEGIN:VCARD\n";
$vcard .= "VERSION:3.0\n";
$vcard .= "FN:Иван Петров\n";
$vcard .= "TEL:+7-123-456-78-90\n";
$vcard .= "EMAIL:ivan@example.com\n";
$vcard .= "END:VCARD";                    

Рекомендаций