Nessuna descrizione

smiley 20de869bb9 :octocat: rename QROutputAbstract::base64encode() to toBase64DataURI() to better reflect what it does 3 anni fa
.github 1fd3109339 :octocat: mute debug output on CI 3 anni fa
.idea 4f3ddbc205 :octocat: 4 anni fa
.phan 23388e14ad :shower: 3 anni fa
docs 4e03cdcc85 :octocat: moved readme images 4 anni fa
examples 20de869bb9 :octocat: rename QROutputAbstract::base64encode() to toBase64DataURI() to better reflect what it does 3 anni fa
src 20de869bb9 :octocat: rename QROutputAbstract::base64encode() to toBase64DataURI() to better reflect what it does 3 anni fa
tests 10cf86ffc3 :shower: 3 anni fa
.editorconfig 6a2bad4e34 :sparkles: +editorconfig 4 anni fa
.gitignore 1fd3109339 :octocat: mute debug output on CI 3 anni fa
.scrutinizer.yml b0fb84f578 :shower: 3 anni fa
LICENSE-ASL-2.0 66c0b69ffb :octocat: added Apache-2.0 license 3 anni fa
LICENSE-MIT 66c0b69ffb :octocat: added Apache-2.0 license 3 anni fa
NOTICE 66c0b69ffb :octocat: added Apache-2.0 license 3 anni fa
README.md 60b204cdcf :octocat: 3 anni fa
composer.json f15b0afe9d :octocat: 3 anni fa
phpdoc.xml a4ff33a171 :octocat: 5 anni fa
phpunit.xml.dist 1fd3109339 :octocat: mute debug output on CI 3 anni fa

README.md

chillerlan/php-qrcode

A PHP 7.4+ QR Code library based on the implementation by Kazuhiko Arase, namespaced, cleaned up, improved and other stuff. It also features a QR Code reader which is based on the ZXing library.

Attention: there is now also a javascript port: chillerlan/js-qrcode.

PHP Version Support Packagist version License Continuous Integration CodeCov Scrunitizer CI Packagist downloads

Documentation

See the wiki for advanced documentation. An API documentation created with phpDocumentor can be found at https://chillerlan.github.io/php-qrcode/ (WIP).

Requirements

  • PHP 7.4+
    • ext-mbstring
    • optional:
    • ext-json, ext-gd
    • ext-imagick with ImageMagick installed
    • setasign/fpdf for the PDF output module

For the QRCode reader, either ext-gd or ext-imagick is required!

Installation

requires composer

via terminal: composer require chillerlan/php-qrcode

composer.json

{
	"require": {
		"php": "^7.4 || ^8.0",
		"chillerlan/php-qrcode": "dev-main"
	}
}

Note: replace dev-main with a version constraint, e.g. ^4.3 - see releases for valid versions. For PHP version ...

  • 7.4+ use ^4.3
  • 7.2+ use ^3.4.1 (v3.4.1 also supports PHP8)
  • 7.0+ use ^2.0
  • 5.6+ use ^1.0 (please let PHP 5 die!)

In case you want to keep using dev-main, specify the hash of a commit to avoid running into unforseen issues like so: dev-main#cb69751c3bc090a7fdd2f2601bbe10f28d225f10

PSA: PHP 7.0 - 7.3 are EOL and therefore the respective QRCode versions are also no longer supported!

Quickstart

We want to encode this URI for a mobile authenticator into a QRcode image:

$data = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net';

// quick and simple:
echo '<img src="'.(new QRCode)->render($data).'" alt="QR Code" />';

QR codes are awesome!

Wait, what was that? Please again, slower! See Advanced usage on the wiki. Also, have a look in the examples folder for some more usage examples.

Reading QR Codes

Using the built-in QR Code reader is pretty straight-forward:

$result = (new QRCode)->readFromFile('path/to/file.png'); // -> DecoderResult

// you can now use the result instance...
$content = $result->data;
$matrix  = $result->getMatrix(); // -> QRMatrix

// ...or simply cast it to string to get the content:
$content = (string)$result;

It's generally a good idea to wrap the reading in a try/catch block to handle any errors that may occur in the process.

Framework Integration

Shameless advertising

Hi, please check out my other projects that are way cooler than qrcodes!

Disclaimer!

I don't take responsibility for molten CPUs, misled applications, failed log-ins etc.. Use at your own risk!

License notice

Parts of this code are ported to php from the ZXing project and licensed under the Apache License, Version 2.0.

Trademark Notice

The word "QR Code" is a registered trademark of DENSO WAVE INCORPORATED
https://www.qrcode.com/en/faq.html#patentH2Title