中文手册 :php-qrcode中文手册
原作者Github :https://github.com/chillerlan/php-qrcode
一、安装: 1.命令行安装:composer require chillerlan/php-qrcode 2.打开 composer.json 文件,添加以下配置 执行 composer update 命令 { "require": { "chillerlan/php-qrcode": "^4.0" } } 根据你的PHP版本选择 7.4+ use ^4.0 , "chillerlan/php-qrcode": "^4.0" 7.2+ use ^3.2 , "chillerlan/php-qrcode": "^3.2" 7.0+ use ^2.0 , "chillerlan/php-qrcode": "^2.0" 5.6+ use 1.0.9 ,"chillerlan/php-qrcode": "^1.0.9"
<?php use chillerlan\QRCode\QRCode; use chillerlan\QRCode\QROptions; //要生成内容 $data = 'https://www.10ce.com/'; //配置 $options = new QROptions([ 'version' => QRCode::VERSION_AUTO, 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L, //ECC_L, ECC_M, ECC_Q, ECC_H 容错率 ECC-Level: 7%, 15%, 25%, 30% ,即二维码损坏 % 多少时仍然可以识别,损坏越多识别越慢 'scale' => 6, 'imageBase64' => false,//是否返回 base64 'moduleValues' => [ // finder 1536 => [0, 63, 255], // 三个角上 大码眼 rgb颜色 6 => [255, 255, 255], // 底色 // alignment 2560 => [255, 0, 255],//右下角 小码眼 rgb颜色 10 => [255, 255, 255], // 底色 // timing 3072 => [255, 0, 0],//辅助腰线 rgb颜色 12 => [255, 255, 255],// 底色 // format 3584 => [67, 191, 84],//在码眼边缘 格式数据 14 => [255, 255, 255], // version 4096 => [62, 174, 190],//二维码版本 16 => [255, 255, 255], // data 1024 => [0, 0, 0],//主要数据 4 => [255, 255, 255], // darkmodule 512 => [0, 0, 0], // separator 8 => [255, 255, 255], // quietzone 18 => [255, 255, 255], ], ]); $qrcode = new QRCode($options); $file = $qrcode->render($data); //保存到文件 file_put_contents( \think\facade\App::getRootPath().'public/example_image.png',$file); echo '<img src="/example_image.png" alt="QR Code" />'; exit;生成效果
$options = new QROptions([ 'version' => 7, 'outputType' => QRCode::OUTPUT_MARKUP_SVG, 'eccLevel' => QRCode::ECC_L, //ECC_L, ECC_M, ECC_Q, ECC_H 容错率 ECC-Level: 7%, 15%, 25%, 30% ,即二维码损坏 % 多少时仍然可以识别,损坏越多识别越慢 'scale' => 5, 'addQuietzone' => true, 'cssClass' => 'my-css-class', 'svgOpacity' => 1.0, 'svgDefs' => '', 'moduleValues' => [ // finder 1536 => 'url(#g1)', // dark (true) 6 => '#fff', // light (false) // alignment 2560 => 'url(#g1)', 10 => '#fff', // timing 3072 => 'url(#g1)', 12 => '#fff', // format 3584 => 'url(#g1)', 14 => '#fff', // version 4096 => 'url(#g1)', 16 => '#fff', // data 1024 => 'url(#g2)', 4 => '#fff', // darkmodule 512 => 'url(#g1)', // separator 8 => '#fff', // quietzone 18 => '#fff', ], ]); $file = (new QRCode($options))->render($data); //保存到文件 file_put_contents( \think\facade\App::getRootPath().'public/example_image.svg',$file); echo '<img src="/example_image.svg" alt="QR Code" />'; exit; 生成效果
配置 | 类型 | 默认值 | 可选参数 | 描述 |
---|---|---|---|---|
$version | int | QRCode::VERSION_AUTO | 1...40 | 二维码版本1-40,不同版本可存储内容容量不同,使用VERSION_AUTO即可 |
$versionMin | int | 1 | 1...40 | 最小版本 |
$versionMax | int | 40 | 1...40 | 最大版本 |
$eccLevel | int | QRCode::ECC_L | ECC_L, ECC_M, ECC_Q, ECC_H | 容错率 L (7%), M (15%), Q (25%), H (30%),即二维码损坏 % 多少时仍然可以识别,损坏越多识别越慢 |
$maskPattern | int | QRCode::MASK_PATTERN_AUTO | 0...7 | 掩码图案 |
$addQuietzone | bool | true | - | 边距 |
$quietzoneSize | int | 4 | clamped to 0 ... $matrixSize / 2 | 边距大小 |
$dataModeOverride | string | null | Number , AlphaNum , Kanji , Byte | 允许重写数据类型检测 |
$outputType | string | QRCode::OUTPUT_IMAGE_PNG | OUTPUT_IMAGE_PNG, OUTPUT_IMAGE_JPG, OUTPUT_IMAGE_GIF,OUTPUT_MARKUP_SVG, OUTPUT_MARKUP_HTML,OUTPUT_STRING_JSON, OUTPUT_STRING_TEXT,OUTPUT_IMAGICK,OUTPUT_CUSTOM | 内置输出类型 |
$outputInterface | string | null | * | 自定义输出时QRCode::OUTPUT_CUSTOM 的接口QROutputInterface |
$cachefile | string | null | * | 可选缓存文件路径 |
$eol | string | PHP_EOL | * | 换行字符串(HTML、SVG、文本) |
$scale | int | 5 | * | 二维码大小, 输出为(SVG, IMAGE_*)时 |
$cssClass | string | null | * | SVG输出时定义 css 的class |
$svgOpacity | float | 1.0 | 0...1 | |
$svgDefs | string | * | * | anything between <defs> |
$svgViewBoxSize | int | null | * | a positive integer which defines width/height of the viewBox attribute |
$textDark | string | ' | * | string substitute for dark |
$textLight | string | ' | * | string substitute for light |
$markupDark | string | '#000' | * | markup substitute for dark (CSS value) |
$markupLight | string | '#fff' | * | markup substitute for light (CSS value) |
$imageBase64 | bool | true | - | 默认返回 base64 图片内容 |
$imageTransparent | bool | true | - | 透明 (不支持 jpeg 图片) |
$imageTransparencyBG | array | [255, 255, 255] | [R, G, B] | 透明颜色的RGB值,请参见 imagecolortransparent() |
$pngCompression | int | -1 | -1 ... 9 | imagepng() PNG图压缩级别, -1 = auto (自动) |
$jpegQuality | int | 85 | 0 - 100 | imagejpeg() JPG图片质量 |
$imagickFormat | string | 'png' | * | ImageMagick 输出类型, 请看 Imagick::setType() |
$imagickBG | string | null | * | ImageMagick 输出背景颜色, 请看 ImagickPixel::__construct() |
$moduleValues | array | null | * | 模块值映射,请看上面示例配置信息 和 QROutputInterface::DEFAULT_MODULE_VALUES |