Я намагаюся генерувати QR-коди на своєму веб-сайті. Все, що їм потрібно зробити, це мати в собі URL-адресу, яку надасть змінна на моєму сайті. Що було б найпростішим способом зробити це?
Я намагаюся генерувати QR-коди на своєму веб-сайті. Все, що їм потрібно зробити, це мати в собі URL-адресу, яку надасть змінна на моєму сайті. Що було б найпростішим способом зробити це?
Відповіді:
Варто додати, що, крім бібліотеки QR-кодів, розміщеної @abaumg , Google надає іAPI QR-кодів API QR-кодів велике спасибі @Toukakoukan за оновлення посилання .
Щоб використовувати це, в основному:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
- розмір QR-зображення, яке потрібно створити,chl
є URL-закодовані рядки ви хочете змінити в QR - код, іchoe
є ( по бажанню) кодування.Посилання, наведене вище, дає більше деталей, але для його використання потрібно лише src
вказати значення зображення на маніпульоване значення, наприклад:
<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8" title="Link to Google.com" />
Демонстрація:
Найпростіший спосіб генерувати QR-коди за допомогою PHP - це бібліотека phpqrcode .
Бібліотеку phpqrcode дуже швидко налаштувати, а документацію щодо API легко зрозуміти.
На додаток до відповіді abaumg, я додав 2 приклади PHP
з http://phpqrcode.sourceforge.net/examples/index.php
1. Кодер QR-коду
спочатку включіть бібліотеку з вашого локального шляху
include('../qrlib.php');
потім для виведення зображення безпосередньо у вигляді потоку PNG зробіть, наприклад:
QRcode::png('your texte here...');
щоб зберегти результат локально як зображення PNG:
$tempDir = EXAMPLE_TMP_SERVERPATH;
$codeContents = 'your message here...';
$fileName = 'qrcode_name.png';
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;
QRcode::png($codeContents, $pngAbsoluteFilePath);
2. Декодер QR-коду
Дивіться також декодер zxing :
http://zxing.org/w/decode.jspx
Дуже корисно перевірити вихідні дані.
3. Список формату даних
Список формату даних, який ви можете використовувати у своєму QR-коді відповідно до типу даних:
http://
)Бібліотека endroid / QrCode проста у використанні, добре підтримується і може бути встановлена за допомогою композитора. Існує також комплект, який можна використовувати безпосередньо з Symfony.
Встановлення:
$ composer require endroid/qrcode
Використання:
<?php
use Endroid\QrCode\QrCode;
$qrCode = new QrCode();
$qrCode
->setText('Life is too short to be generating QR codes')
->setSize(300)
->setPadding(10)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setLabel('Scan the code')
->setLabelFontSize(16)
->setImageType(QrCode::IMAGE_TYPE_PNG)
;
// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();
// or create a response object
$response = new Response($qrCode->get(), 200, array('Content-Type' => $qrCode->getContentType()));
setText()
якщо у мене БІЛЬШО даних? Наприклад, у мене є $a = 1
, $b = 2
, $c = 3
?. Мені потрібно використовувати більше ОДНОГО речення або рядка. Як я можу це зробити?
setText
метод приймає лише один параметр, я думаю, вам слід об'єднати свої змінні в один, перш ніж передавати його. Але я не впевнений, що правильно розумію вашу проблему, можливо, вам слід відкрити проблему в репозитарії бібліотеки.
qrcode-генератор на Github. Найпростіший сценарій і працює як шарм.
Плюси:
Я вже деякий час використовую google qrcode api, але мені це не зовсім подобається, тому що для доступу до створеного зображення мені потрібно бути в Інтернеті.
Я провів невелике дослідження в командному рядку і виявив, що linux має інструмент командного рядка qrencode
для генерації qr-кодів.
Я написав цей маленький сценарій. І хороша частина полягає в тому, що сформоване зображення має розмір менше 1 КБ. Ну, надані дані - це просто URL-адреса.
$url = ($_SERVER['HTTPS'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].'/profile.php?id='.$_GET['pid'];
$img = shell_exec('qrencode --output=- -m=1 '.escapeshellarg($url));
$imgData = "data:image/png;base64,".base64_encode($img);
Потім у html завантажую зображення:
<img class="emrQRCode" src="<?=$imgData ?>" />
Вам просто потрібно встановити його. [більшість програм для обробки зображень на Linux встановили б його під капотом, без того, щоб ви цього зрозуміли.
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Я знаю, що питання полягає в тому, як генерувати QR-коди за допомогою PHP, але для інших, хто шукає спосіб генерувати коди для веб-сайтів, які роблять це в чистому javascript, це хороший спосіб це зробити. JQuery-QRCode JQuery плагін робить це добре.