# Overview

A PHP QR Code generator based on the implementation by Kazuhiko Arase, namespaced, cleaned up, improved and other stuff. It also features a QR Code reader based on a PHP port of the ZXing library.

## Features

- Creation of Model 2 QR Codes, Version 1 to 40

- ECC Levels L/M/Q/H supported

- Mixed mode support (encoding modes can be combined within a QR symbol). Supported modes:

  - numeric

  - alphanumeric

  - 8-bit binary

    - ECI support

  - 13-bit double-byte:

    - kanji (Japanese, Shift-JIS)

    - hanzi (simplified Chinese, GB2312/GB18030) as defined in GBT18284-2000

- Flexible, easily extensible output modules, built-in support for the following output formats:

  - GdImage (raster graphics: avif, bmp, gif, jpeg, png, webp)

  - ImageMagick (multiple supported image formats)

  - Markup types: SVG, HTML, etc.

  - String types: JSON, plain text, etc.

  - Encapsulated Postscript (EPS)

  - PDF via FPDF

- QR Code reader (via GD and ImageMagick)

## Requirements

- PHP 8.2+

  - `ext-mbstring`

  - optional:

    - `ext-gd`

    - `ext-imagick` with ImageMagick installed

      - `ext-fileinfo` (required by `QRImagick` output)

    - `setasign/fpdf` for the PDF output module

    - `intervention/image` for alternative GD/ImageMagick output

For the QR Code reader, either `ext-gd` or `ext-imagick` is required!

## Framework Integration

- CakePHP:

  - QrCode plugin

- Drupal:

  - Two-factor Authentication `tfa` (Drupal 8+)

  - Google Authenticator Login `ga_login` (deprecated, Drupal 7)

- Symfony

  - phpqrcode-bundle

- WordPress:

  - wp-two-factor-auth

  - simple-2fa

  - floating-share-button

- WoltLab Suite

  - two-step-verification

- other uses:

  - dependents / packages

  - Appwrite

  - Cachet

  - GÉANT CAT

  - openITCOCKPIT

  - twill

  - Elefant CMS

  - OSIRIS

  - EspoCRM

  - FusionCMS

  - HortusFox

  - Pelican Panel

  - Laravel Boleto

  - OpenBoleto

- Articles:

  - Twilio: How to Create a QR Code in PHP (featuring v4.3.x)

## Shameless advertising

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

- js-qrcode - a javascript port of this library

- php-authenticator - a Google Authenticator implementation (see authenticator example)

- php-httpinterface - a PSR-7/15/17/18 implemetation

- php-oauth - an OAuth 1/2 client library, fully PSR-7/PSR-17/PSR-18 compatible

- php-database - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird

- php-tootbot - a Mastodon bot library