ускоряем браузер Firefox

 

ПРОСТО О СЛОЖНОМ

UPD: composer в OS все таки есть по умолчанию из коробки, спасибо внимательному @undefi, который обратил на это внимание. Инструкцию оставляю, мало ли)))

Сегодня мы установим composer в Open Server, разберемся как создавать QR-коды с помощью PHP, а самое главное - как с помощью все того же пресловутого PHP их расшифровывать. Практическое применение уже представьте сами, хочу сказать лишь о том, что информации именно по декодированию на PHP на русском языке практически нет, да и на английском очень мало.

ВВЕДЕНИЕ
Изначально стояла задача сформировать QR код и расшифровать его с помощью PHP. В процессе обнаружились некоторые сложности, но по итогу все получилось как надо. Я не буду писать подробный мануал именно по кодированию, просто опишу способ подключения нужной библиотеки, дам ссылку на файл, также ссылку на библиотеку декодирования (если я все верно понял - она единственная для PHP на данный момент). Ну и приятным бонусом станет установка composer на сборку Open Server
Что вы узнаете:
  • Как установить composer на Open Server
  • Генерация QR-кода на PHP с помощью библиотеки PHP QR Code
  • Декодирование QR-кода на PHP с помощью библиотеки qrcode-detector-decoder

Основные понятия

 

Open Server — это портативный локальный WAMP/WNMP сервер, имеющий многофункциональную управляющую программу и большой выбор подключаемых компонентов под WINDOWS. Более подробно - на сайте разработчика

Composer — это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении. Подробнее - здесь

PHP QR Code - библиотека для генерации QR-кода на PHP, найти ее можно на гитхабе

qrcode-detector-decoder - библиотека для декодирования QR-кода на PHP, вот ссылка на гитхаб

 

Устанавливаем composer на Open Server

 

Для этого первым делом идем в настройки Open Server и смотрим какая версия PHP у нас там стоит. Имейте ввиду: версия по-любому должна быть не менее 5.3.2

Включаем консоль Open Server, для этого нажмите "Дополнительно" и выберите "Консоль".

Командами консоли переходим в нужную нам папку, так как у меня стоит в настройках PHP_7.4, то команда будет такой:

cd/modules/php/PHP_7.4

 

Затем выполняем следующую команду:

php -r "readfile('https://getcomposer.org/installer');" | php

 

Если все нормально установилось, то вы увидите надпись типа:

All settings correct for using Composer
Downloading...
 
Composer succesfully installed to : <путь до вашей папки php>/Composer.phar
User it: php composer.phar

 

Если вы теперь наберете в консоли команду 

php composer.phar -V

то должны увидеть версию composer. Для дальнейшего удобства рекомендую выполнить еще одну команду:

echo @php "%~dp0composer.phar" %*>composer.bat

 

Она создаст .bat файлик,  и теперь можно будет работать без указания php composer.phar, просто указывая composer. В этом случае команда проверки версии (которая была выше) будет выглядеть так:

composer -V

 

Вот и все, вы установили composer на Open Server и теперь можете смело им пользоваться! Как и зачем - добро пожаловать в гугл, если будет время, которого не будет - я напишу подробнее о нем.

 

Генерация QR-кода на PHP с помощью библиотеки PHP QR Code

 

Сначала мы давайте создадим новый локальный сайт, для этого заходим в директорию OpenServer/Domains и создам папку, пусть она называется my_site, и вот теперь начинаем свистопляску с библиотеками.

Сначала лезем по ссылке PHP QR Code и скачиваем эту библиотеку к себе на компьютер. После этого распаковываем ее в my_site (можно в другое место, но тогда смотрите внимательно пути). После распаковки - удалите все, что было в файле index.php, хотя если вы этого не сделаете, а просто запустите сайт, то уже сможете генерировать QR через специальную форму. Но, наша цель чуток другая, поэтому мы открываем файлик index.php  и там пишем следующие строки:

<?php

include "qrlib.php";   

QRcode::png("Иванов Иван, пятница 13", "qr.png", "L", 4, 4);

?>

Что мы сделали? Мы подключили саму библиотеку, а также вызвали нужный нам метод, который сохранил нашу строку в рисунок PNG, тем самым СГЕНЕРИРОВАЛ QR-КОД! Остальные параметры смотрите в официальной документации библиотеки, там их много: можно и менять размер кода, и цвет, и сохранять в разных форматах, в общем - изучайте, мы идем дальше.

 

Декодирование QR-кода на PHP с помощью библиотеки qrcode-detector-decoder

 

А вот теперь нам пригодится наш composer. И так: чтобы декодировать QR-код мы открываем консоль в Open Server, и перемещаемся в директорию нашего сайта с помощью команды

cd domains\my_site

 

Теперь просто выполняем там же команду:

composer require khanamiryan/qrcode-detector-decoder

 

Все, библиотека установлена, наша задача теперь лишь добавить в index.php строку

require __DIR__ . "/vendor/autoload.php";

 

А теперь небольшое веселье: если сейчас выполнить действие из официального примера - мы ничего не получим, кроме ужасающей по своей длине ошибки интерпретатора PHP, которая сводится к тому, что нужно просто в наш скрипт добавить еще одну строку:

use Zxing\QrReader;

 

Этой строчкой мы разрешаем использование пространства имен, и после этого уже смело пишем в конце скрипта:

$qrcode = new QrReader(__DIR__ .'\qr.png');
$text = $qrcode->text();
echo $text;


Теперь, если мы запустим наш сайт, то увидим расшифровку нашего QR-кода, который хранился в файле qr.png. В целом же каркас нашего скрипта выглядит следующим образом:

<?php
include "qrlib.php";
require __DIR__ . "/vendor/autoload.php";
use Zxing\QrReader;
QRcode::png("Иванов Иван, пятница 13", "qr.png", "L", 4, 4);
$qrcode = new QrReader(__DIR__ .'\qr.png');
$text = $qrcode->text();
echo $text;
?>

 

 Вот и все! Еще раз: в данном примере представлен просто каркас скрипта, доводить его до ума, делать поля, обрабатывать вывод - все это уже каждый делает под свои задачи. Здесь же мы просто сгенерировали QR-код и успешно его декодировали, и все это чисто средствами PHP.

 

 


 

Напоминаю, что вопросы можно задать в группе https://t.me/newqosgroup