呃......很抱歉,检测到您当前浏览器兼容性较差,为了保证您有更高品质的使用体验

1.若当前为360浏览器,请切换至 极速模式

2.若当前为IE浏览器,建议更换为 谷歌浏览器

php-qrcode包 使用教程

Demo在线演示

中文手册 :php-qrcode中文手册

原作者Github :https://github.com/chillerlan/php-qrcode


优势:功能强大、支持composer安装,使用配置较多比phpqrcode库难度大些

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"


1.生成 PNG图片示例

<?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;

生成效果

2.生成 SVG图片示例

$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;

生成效果

php-qrcode包 文档手册

配置类型默认值可选参数描述
$versionintQRCode::VERSION_AUTO1...40二维码版本1-40,不同版本可存储内容容量不同,使用VERSION_AUTO即可
$versionMinint11...40最小版本
$versionMaxint401...40最大版本
$eccLevelintQRCode::ECC_LECC_L, ECC_M, ECC_Q, ECC_H容错率 L (7%), M (15%), Q (25%), H (30%),即二维码损坏 % 多少时仍然可以识别,损坏越多识别越慢
$maskPatternintQRCode::MASK_PATTERN_AUTO0...7掩码图案
$addQuietzonebooltrue-边距
$quietzoneSizeint4clamped to 0 ... $matrixSize / 2边距大小
$dataModeOverridestringnullNumber, AlphaNum, Kanji, Byte允许重写数据类型检测
$outputTypestringQRCode::OUTPUT_IMAGE_PNGOUTPUT_IMAGE_PNG, OUTPUT_IMAGE_JPG, OUTPUT_IMAGE_GIF,OUTPUT_MARKUP_SVG, OUTPUT_MARKUP_HTML,OUTPUT_STRING_JSON, OUTPUT_STRING_TEXT,OUTPUT_IMAGICK,OUTPUT_CUSTOM内置输出类型
$outputInterfacestringnull*自定义输出时QRCode::OUTPUT_CUSTOM的接口QROutputInterface
$cachefilestringnull*可选缓存文件路径
$eolstringPHP_EOL*换行字符串(HTML、SVG、文本)
$scaleint5*二维码大小, 输出为(SVG, IMAGE_*)时
$cssClassstringnull*SVG输出时定义 css 的class
$svgOpacityfloat1.00...1
$svgDefsstring**anything between <defs>
$svgViewBoxSizeintnull*a positive integer which defines width/height of the viewBox attribute
$textDarkstring'🔴'*string substitute for dark
$textLightstring''*string substitute for light
$markupDarkstring'#000'*markup substitute for dark (CSS value)
$markupLightstring'#fff'*markup substitute for light (CSS value)
$imageBase64booltrue-默认返回 base64 图片内容
$imageTransparentbooltrue-透明 (不支持 jpeg 图片)
$imageTransparencyBGarray[255, 255, 255][R, G, B]透明颜色的RGB值,请参见 imagecolortransparent()
$pngCompressionint-1-1 ... 9imagepng() PNG图压缩级别, -1 = auto (自动)
$jpegQualityint850 - 100imagejpeg() JPG图片质量
$imagickFormatstring'png'*ImageMagick 输出类型, 请看 Imagick::setType()
$imagickBGstringnull*ImageMagick 输出背景颜色, 请看 ImagickPixel::__construct()
$moduleValuesarraynull*模块值映射,请看上面示例配置信息 和 QROutputInterface::DEFAULT_MODULE_VALUES
智能起名

相关推荐