У цій невеликій статті розглянемо один зі способів генерації QR-коду на PHP.
Згідно з «мозком» нашого інтернету (Wikipedia), який бреше, але рідко :), QR-код — це:
QR-код (англ. Quick Response Code — код швидкого реагування; скор. QR code) — товарний знак для типу матричних штрихкодів (або двовимірних штрихкодів), спочатку розроблених для автомобільної промисловості Японії.
А якщо простіше, то QR-код — це зображення, яке містить квадратний штрихкод. Його можна зчитати за допомогою мобільного телефону (з відповідним ПЗ) або спеціального технічного засобу.
Перейдемо до справи
Ми не будемо вигадувати велосипед, а для генерації QR-коду на PHP скористаємось готовою бібліотекою «phpqrcode» (дякуємо автору!). Бібліотеку можна завантажити з GitHub за цим посиланням.
Бібліотека «легка» і містить всього кілька десятків файлів, загальний розмір яких трохи більше 250 КБ.
Як використовувати бібліотеку phpqrcode
Завантажену бібліотеку потрібно розпакувати на сервері. В архіві є файл index.php з прикладом роботи. За бажанням можна поекспериментувати з розмірами QR-коду та ECC-рівнем (що, як я розумію, відповідає за якість).
Бібліотека дозволяє створювати QR-коди в кількох форматах:
- png
- svg
- eps
- у вигляді тексту
Як приклад, розглянемо генерацію png-зображення з QR-кодом. Існує два варіанти вирішення цього завдання:
- Відобразити результат одразу в браузері (може стати в пригоді при генерації штрихкоду за посиланням)
- Зберегти згенероване зображення в каталог
Для обох варіантів використовується наступний код:
QRcode::png($text, $outfile, $level, $size, $margin, $saveandprint, $back_color, $fore_color);
де:
$text — текст для «шифрування» в QR-коді
$outfile — каталог, у якому будуть зберігатися створені штрих-коди (якщо вказано false — код буде виведено одразу в браузер як звичайне зображення)
$level — рівень
$size — розмір
$margin — відступи від країв зображення
$saveandprint — якщо встановлено в false — не надсилає заголовок «Content-type: image/png» під час генерації
$back_color — фон зображення
$fore_color — колір точок штрихкоду
На цьому все. Дякую!
