Как сделать qr код php

Обновлено: 04.07.2024

В Интернете доступно несколько библиотек с открытым исходным кодом, которые можно использовать для создания кода быстрого ответа (QR). Хорошая библиотека с открытым исходным кодом для генерации QR-кода в PHP доступна в sourceforge . Его просто нужно скачать и скопировать в папку проекта. Это включает в себя модуль с именем «phpqrcode», в котором есть файл с именем «qrlib.php». Этот файл должен быть включен в код, чтобы использовать функцию с именем «png ()», которая находится внутри класса QRcode. Функция png () выводит непосредственно QR-код в браузер, когда мы передаем некоторый текст в качестве параметра, но мы также можем создать файл и сохранить его.

Синтаксис:

Параметры: Эта функция принимает пять параметров, как указано выше и описано ниже:

Пример 1: PHP-программа для генерации QR-кода.


// Включить файл qrlib


// переменная $ text содержит данные для QR

$text = "GEEKS FOR GEEKS" ;


// Генерация QR-кода с использованием png ()
// Когда эта функция имеет только
// текстовый параметр это напрямую
// выводит QR в браузер


Выход:

Примечание. Этот вывод генерируется непосредственно в браузере. Этот код не будет работать в онлайн-среде IDE, поскольку он не может содержать модуль phpqrcode.

Пример 2: PHP-программа для генерации QR-кода и создания файла.

<?php
// Включить файл qrlib

$text = "GEEKS FOR GEEKS" ;

$file = $path .uniqid(). ".jpg" ;


// Генерирует QR-код и сохраняет его в заданном каталоге

QRcode::png( $text , $file , $ecc , $pixel_Size , $frame_size );


// Отображение сохраненного QR-кода из каталога


Выход:

Примечание . Вывод обоих примеров различен. В первом примере выходные данные будут отображаться с размером кадра и пикселя по умолчанию, который генерируется непосредственно в браузере, тогда как выходные данные второго примера представляют собой файл «png» с размером пикселя и кадра, равным 10, в каталоге.

Система QR-кодов стала очень популярной по всему миру, и может применяться в различных сферах промышленности. Возможность быстрого считывания информации оптическим методом послужила главной причиной его популярности. Даже по сравнению с традиционными штрихкодами стандарта UPC которые могут содержать менее ёмкую информацию по сравнению с QR. В данном посту вы рассмотрим возможность генерации QR-кодов на PHP.

Что требуется для генерации QR

Для генерации QR-кодов удобно использовать сторонние библиотеки, которые позволяют внедрять их в различные проекты. Одной из популярных библиотек для генерации QR-кодов является «PHP QR Code». Для работы с этой библиотекой в PHP нам так же потребуется библиотека GD, которая как правило бывает уже установлена по умолчанию на сервере.
Перед началом работы с библиотекой, скачиваем её в директорию своего проекта. Далее можем приступать к работе с ней.

Простые примеры использования

Генерировать QR-коды довольно просто, достаточно подключить библиотеку, а затем обратиться к методу QRcode::png(). Созданный QR-можно сохранять в файл, либо выводить его в браузер.

Сохранение QR-кода в файл

Вывод QR-кода в браузер

Параметры использования метода

В самом деле количество параметров, которые могут быть переданы методу гораздо больше. Давайте подробнее рассмотрим их назначение.
Синтаксис:

$text – строка для кодирования;
$outfile – путь для сохранения файла, по умолчанию false – будет вывод в браузер;
$level – уровень коррекции ошибок (L – низкий, по умолчанию, M – средний, Q – Четверть, H – Высокий);
$size – размер «точки», по умолчанию 3px;
$margin – отступ от краёв, указывается в единицах, как и в $size;
$saveandprint – если true, то одновременно будет сохранён в файл и показан в браузере.

Специальные ссылки в QR-коде

Вот ещё одна интересная особенность использования QR кодов – это специальные ссылки для приложений в мобильных устройствах. Мы можем закодировать в QR данные, которые сообщат мобильному устройству открыть приложение и сообщить им какие-либо данные, например, такие как контактный номер телефона.

Набор номера телефона из QR

Форма отправки SMS на номер из QR

Добавление нового контакта из QR

Открытие почтового клиента Email из QR

Дозвон по Skype

Конечно привести все примеры, которые могут сработать в мобильном приложении невозможно. Но понимая принцип формирования подобных ссылок вы можете добавлять данные и для других приложений. Теперь поговорим о том, как можно настраивать внешний вид QR-кода.

Настройка внешнего вида QR-кода

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

Задаём цвет фона для QR-кода

Прозрачный фон для QR-кода
Иногда бывает нужно накладывать QR-код на какой-либо другой фон, для этих задач удобно использовать прозрачный фон. Т.к. изображение мы генерируем в формате PNG, то задать прозрачный фон в PHP не так сложно.

Изменение цвета самого QR-кода
В примерах выше мы меняли цвет фона, а также делали его прозрачным. Кроме самого фона мы можем так же менять цвет самого QR-кода. Делается это аналогичным образом с небольшим отличием в коде.

Добавляем логотип в QR-код
Для некоторых задач иногда требуется добавить в QR-код свой логотип, сделаем его тем самым более уникальным. С технической точки зрения, делать этого конечно не желательно, т.к. закрывая какую-то часть кода логотипом, мы усложняем его чтение. Однако, сделать это вполне реально, с учётом того, что его придётся генерировать с максимальным уровнем коррекции ошибок, дабы не потерять читаемость кода.

Есть небольшие нюансы в коде. Т.к. библиотека генерирует файл в формате PNG-8, при склейке QR-кода и лого мы могли бы получить потерю цветов у логотипа. По этой причине, в примере PNG8 преобразуется в PNG24 чтобы избежать потери качества.

От автора: широко применяемые в различных современных приложениях QR-коды можно видеть на банках кока-колы, визитных карточках, в суши-барах и музеях. В данном уроке, мы рассмотрим генерацию QR кода средствами PHP. QR-код – это двумерный штрих-код, изобретенный в Японии. Он запатентован, но создатели, корпорация Denso Wave, решили его не использовать и оставили стандарт открытым для всех. С тех пор код стал гораздо популярнее из-за способности включать в единственное изображение множество данных и распространения смартфонов со сканирующими приложениями.

В этой статье я покажу вам, как QR-коды с легкостью генерируются в PHP-приложении и поделюсь идеями того, где и как их применять, как сгенерировать qr код. Для генерации QR-кодов мы используем PHP QR Code – библиотеку, написанную в PHP для генерирования QR-кодов, которой для создания изображений не требуется ничего, помимо стандартного графического расширения GD2.

Генерируем первый QR-код

Начните с закачки последней библиотеки PHP QR Code с GitHub. Полагаю, что вам это удалось, и вы сможете пройти в среде разработки на //localhost/phpqrcode и обнаружите, что демо-версия работает. Можете вставить любой понравившийся вам текст в поле данных, чтобы конвертировать его в изображение QR-кода, как показано внизу на скриншоте. Если возникли какие-либо проблемы, убедитесь, что у вас установлен PHP с расширением GD2, при необходимости дважды проверив это на странице информации PHP.


Создайте новый скрипт PHP со следующим кодом:


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Видите, как просто? С помощью двух строк, вы освоили генерацию QR-кода для своих веб-приложений на PHP. Возможности бесконечны! Но погодите, это явно не все. У библиотеки имеется множество достойных рассмотрения свойств.

Свойства библиотеки PHP QR Code

Для полного представления попробуйте этот код:

Первый параметр определяет текст или данные, которые будут закодированы в изображении, и передается как обычная строка. Второй параметр – это название выходного файла к сгенерированному PNG-изображению. Значение по умолчанию – булево false, в этом случае изображение сбрасывается в браузер.

Третий параметр – уровень коррекции ошибок для сгенерированного штрих-кода, переданного как строка из единственной буквы. Она устанавливает, сколько кодовых слов данных (8 бит на одно кодовое слово) можно сохранить для искаженного или поврежденного изображения QR-кода с помощью алгоритма коррекции ошибок Рида-Соломона (Reed-Solomon error correction algorithm). Чем выше уровень коррекции, тем меньше может быть информационная емкость штрих-кода для данного измерения. Ниже приведена таблица, отражающая уровни с процентным соотношением их восстановления и константами строк, применяемыми при вызове QRcode::png(). (Я взял таблицу из статьи Wikipedia об QR-кодах, а сигнатуру метода – из библиотеки PHP QR Code.)


Четвертый параметр определяет размер каждого квадрата штрих-кода в пикселях. Каждый квадрат кода (также называемый “пикселями” или “модулями”) – 4×4px. Пятый параметр определяет предел белого поля вокруг штрих-кода в квадратах кода (например, поле в 16px с каждой стороны для квадрата кода размером 4×4px).

Библиотека поддерживает экспорт изображений PNG, SVG и EPS, и можно генерировать QR-коды в любом из этих форматов, просто меняя название метода с png() на svg() или eps() и применяя правильное расширение файлового имени сгенерированного изображения.

Также можно менять цвет фона и изображения переднего плана, передавая их как дополнительные параметры:

Favorite

Добавить в избранное

qrcp. Передача файлов между настольными и мобильными устройствами по Wi-Fi путем сканирования QR-кода

Установить библиотеку phpqrcode

Вам необходимо установить пакет phpqrcode в своей системе для генерации QR-кода с помощью PHP-скрипта. Вам также необходимо обновить вашу систему перед установкой пакета.

Выполните следующую команду, чтобы обновить систему:

Выполните следующую команду, чтобы установить phpqrcode в Ubuntu:

Выполните следующую команду, чтобы перезапустить сервер apache:

Синтаксис:

png() может принимать пять аргументов. Первый аргумент, $text, устанавливает данные, которые будут использоваться для генерации QR-кода. Второй аргумент, $file, устанавливает имя файла для хранения QR-изображения. Третий аргумент, $error_correction, устанавливает возможность исправления ошибок. Для указания уровня коррекции можно использовать четыре символа (L, M, Q и H). Четвертый аргумент, $pixel_size, устанавливает размер пикселя. Наконец, пятый аргумент, $frame_size, устанавливает размер QR, который может быть от 1 до 10.

Пример 1. Создание QR-кода и отображение его в браузере.

Следующий скрипт сгенерирует QR-изображение простых данных и отобразит изображение прямо в браузере. Создайте сценарий PHP со следующим сценарием.

Пример 2: Создайте и сохраните изображение QR в файл

В предыдущем примере QR-изображение печатается непосредственно в браузере, а не сохраняется в виде файла изображения. Следующий скрипт сохранит изображение QR как файл PNG. Создайте файл PHP со скриптом.

Здесь функция png () используется с двумя аргументами. «Генератор QR-кода PHP» используется в первом аргументе в качестве данных для генерации QR-кода, а «QRImage.jpg» используется во втором аргументе для сохранения изображения в файле. Затем HTML-код встраивается с тегом <img> для отображения файла QRImage.jpg в браузере.

Пример 3: Создайте и сохраните QR-изображение в файл с размером

В двух предыдущих примерах размер кадра и размер пикселя не определены для создания изображения QR. Следующий сценарий создаст QR-изображение с определенным размером пикселя и кадра и сохранит изображение в файле PNG. Все пять аргументов используются в функции png () этого скрипта. «Learn PHP from AndreyEx» устанавливается в первом аргументе функции png (), которая используется для генерации QR-изображения. Функция uniqid () используется в скрипте для создания имени файла PNG с уникальным идентификатором. «L» используется для уровня коррекции ошибок. 12 устанавливается для размера пикселя, а 8 устанавливается для размера кадра QR-изображения. Затем имя файла используется в теге для отображения созданного QR-изображения данных.

Заключение

В библиотеке phpqrcode существует множество функций для генерации QR-кода. Виды использования в PNG () функции QRcode класса описаны в этом руководстве, используя различные примеры. Способы создания QR-изображения напрямую, сохранения QR-изображения в файл и создания QR-изображения нестандартного размера показаны в этом руководстве, чтобы помочь PHP-кодеру легко создать QR-код с помощью PHP-скрипта.

Вариант №1.

Поскольку в стандартной поставке php ничего для генерации QR кодов нет, придётся воспользоваться сторонними библиотеками. Сразу обращаем внимание на PHP QR Code, который лежит на гитхабе — GitHub PHP QR Code. Всё что нам нужно сделать, это добавить файл qrlib.php в своей проект, остальное подключится само.
Собственно опробовать саму библиотеку можно ничего не создавая и не подключая, просто запускаем индексный файл из папки проекта и перед нами появится такая тестовая форма, в которой и можно генерировать QR коды. На этом месте следует сделать важное уточнение … данная библиотека не будет работать без поддержки GD2 с поддержкой PNG. Поэтому если у вас она не подключена, то идём в php.ini , находим там данное расширение и убираем у него символ комментария.


Наш QR код создаётся в формате PNG … нас это, конечно, вполне устраивает, но данная библиотека может создавать QR коды и в формате SVG.

Разбираем основной функционал.

Собственно весь процесс генерации QR кода заключается всего в одной функции:

Но что означают все эти параметры ? Давайте заглянем в файл INSTALL. Тут мы видим следующие строки:

//write code into file, Error corection lecer is lowest, L (one form: L,M,Q,H)

//each code square will be 4?4 pixels (4x zoom)

//code will have 2 code squares white boundary around


По порядку QRcode::png означает что наш QR код будет генерироваться в формате png, если хотите QR код в SVG формате, тогда указывайте QRcode::svg Только в качестве второго параметра тоже не забудьте поменять расширение файла. Теперь давайте разберем сами параметры:

PHP QR Code : ) — это текст, либо ссылка, которую мы хотим закодировать.

test.jpg — файл, в который весь этот QR-код будет сохраняться.

L — уровень коррекции ошибок, константа, допустимы следующие значения (от меньшего к большему) L — M — Q — H, от уровня коррекции ошибок зависит и плотность данных, что впрочем вполне естественно. Увеличивается и размер изображения, это тоже нужно учитывать.

Предпоследний параметр это длина и ширина нашего модуля (модуль это отдельно взятый квадратик из QR кода)

Последний параметр это ширина нашей рамки вокруг QR кода, внимаине(!), в модулях, не в пикселях, а именно в модулях, значение 2 указывает на то, что рамка будет содержать 2 модуля, т.е. в данном случае иметь ширину 8px. Если не хотите рамку вокруг QR кода вообще, тогда в качестве параметра указывайте ноль.


Рамку на белом фоне можно увидеть выделив наши коды, справа код без рамки и слева код с рамкой в 1 модуль.

Как видите, в конце у нас появился ещё один параметр, при указании false в качестве шестого параметра, скрипт должен сохранить картинку и отдать её в браузер. Но никакого эффекта не замеченно, поэтому переходим к седьмому параметру.

Пример кода скрипта:

Седьмой параметр — $background это цвет, которым можно закрасить пустые области вокруг черных модулей. Получается вот такой «гламур»:


Последний параметр $foreground позволяет нам раскрасить черные блоки QR кода.

Напишем: $foreground = 0xFFee22;


Получился вот такой сферический QR код в вакууме.
Ну собственно всё, переходим ко 2 более быстрому и более простому варианту генерации QR кодов.

Читайте также: