| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- /**
- * multi/mixed mode example
- *
- * @created 31.01.2023
- * @author smiley <smiley@chillerlan.net>
- * @copyright 2023 smiley
- * @license MIT
- */
- declare(strict_types=1);
- use chillerlan\QRCode\{QRCode, QROptions};
- require_once __DIR__.'/../vendor/autoload.php';
- // make sure we run in UTF-8
- // ideally, this should be set in php.ini => internal_encoding/default_charset or mbstring.internal_encoding
- mb_internal_encoding('UTF-8');
- // please excuse the IDE yelling https://youtrack.jetbrains.com/issue/WI-66549
- $options = new QROptions;
- $options->outputBase64 = false;
- $options->connectPaths = true;
- $qrcode = (new QRCode($options))
- ->addNumericSegment('1312')
- ->addByteSegment("\n")
- ->addAlphaNumSegment('ACAB')
- ->addByteSegment("\n")
- ->addKanjiSegment('すべての警官はろくでなしです')
- ->addByteSegment("\n")
- ->addHanziSegment('所有警察都是混蛋')
- ->addByteSegment("\n")
- ->addByteSegment('https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2016/bvg16-036.html')
- ;
- $out = $qrcode->render();
- if(PHP_SAPI !== 'cli'){
- header('Content-type: image/svg+xml');
- if(extension_loaded('zlib')){
- header('Vary: Accept-Encoding');
- header('Content-Encoding: gzip');
- $out = gzencode($out, 9);
- }
- }
- echo $out;
- exit;
|