宝哥软件园

PHP如何基于phpqrcode类生成QR码的详细说明

编辑:宝哥软件园 来源:互联网 时间:2021-09-01

本文通过一个例子讲述了PHP如何基于phpqrcode类生成二维码。分享给大家参考,如下:

用PHP语言生成二维码是相当困难的,除了调用生成二维码图片的接口(比如联图网的http://www.liantu.com/接口)。如果你自己写代码生成它,你真的不能开始。但是我们可以用现成的类文件phpqrcode和PHP qrcode来生成类库,很容易就能生成QR code。

准备工作:

1.下载1.phpqrcode类文件,下载地址:必须在https://sourceforge.net/projects/phpqrcode/2.PHP环境中启用GD2扩展库支持(通常是启用的)

方法解释:

下载的类文件是一个压缩包,里面包含很多文件和演示程序。我们只需要里面的phpqrcode.php文件来生成二维码。它是多个类的集合文件,我们需要在里面使用QRcode类(第2963行)的png()方法(第3090行):

公共静态函数png($text,$outfile=false,$level=QR_ECLEVEL_L,$size=3,$margin=4,$ savandprint=false){ $ enc=qrencode 3360: factory($ level,$size,$ margin);return $ enc-encodpeng($ text,$outfile,$ savandprint=false);}第一个参数$text:二维码中包含的内容可以是链接、单词、json字符串等。第二个参数$outfile:默认值为false,不生成文件,只返回二维码图像输出;否则,需要给出存储生成的二维码图片的文件名和路径;第三个参数$level:默认值为L,该参数的可传输值为L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)和H(QR_ECLEVEL_H,30%)第四个参数$size:控制生成图片的大小,默认值为4;第五个参数$margin:控制生成二维码的空白区域大小;第六个参数$saveandprint:保存二维码图片并显示。$outfile必须通过图片路径;

使用示例:

1.生成二维码(生成图片文件)

//1.生成原始二维码(生成图片文件)函数scerweima($ URL=' '){ require _ once ' phpqrcode . PHP ';$ value=$ url//二维码内容$ errorCorrectionLevel=' L//容错级别$ matrix pointsize=5;//生成图像大小//生成二维码图像$ filename='二维码/'。微时间()。png ';QRcode:png($value,$filename,$errorCorrectionLevel,$matrixPointSize,2);$ QR=$ filename//生成的原始二维码图像文件$ QR=ImageCreateFromstring(file _ get _ contents($ QR));//输出图像imagepng($QR,' QR code . png ');imagedestroy(二维码);返回' img src=' http : QR code . png ' alt='用微信扫描支付';}//调用检查结果echo scerweima(' https://www . Baidu.com ');2.为生成的二维码添加标志(生成图片文件)

//2.在生成的二维码中添加logo(生成图片文件)函数scerweima 1($ URL=' '){ require _ once ' phpqrcode . PHP ';$ value=$ url//二维码内容$ errorCorrectionLevel=' H//容错级别$ matrix pointsize=6;//生成图像大小//生成二维码图像$ filename='二维码/'。微时间()。png ';QRcode:png($value,$filename,$errorCorrectionLevel,$matrixPointSize,2);$logo='二维码/logo . jpg ';//准备好的logo图片$ QR=$ filename//生成的原始二维码图if(file _ exists($ logo)){ $ QR=imagecreatefromstring(file _ get _ contents($ QR));//目标映像连接资源。$ logo=imagecreatefromstring(file _ get _ contents($ logo));//源图像连接资源。$ QR _ width=imagesx($ QR);//二维码图片宽度$ QR _ height=imagesy($ QR);//二维码图像高度$ logo _ width=imagesx($ logo);//logo图片宽度$ logo _ height=imagesy($ logo);//logo图像高度$ logo _ QR _ width=$ QR _ width/4;//组合后logo的宽度(占二维码的1/5)$ scale=$ logo _ width/$ logo _ QR _ width;//logo的宽度缩放比例(自身宽度/组合宽度)$ logo _ QR _ height=$ logo _ height/$ scale;//组合后logo的高度为$ from _ width=($ QR _ width-$ logo _ QR _ width)/2;//组合后logo左上角的坐标点//重组图片并调整大小/* * imagecopysampled()将一个图像(源图像)中的正方形区域复制到另一个图像*/imagecopysampled ($ QR,$ logo,$ from _ width,$ from _ width,0,0,$logo_qr_width,$logo_qr_height,$logo_width,$ logo _ height);}//输出图片imagepng($QR,' QR code . png ');imagedestroy(二维码);image destroy($ logo);返回' img src=' http : QR code . png ' alt='用微信扫描支付';}//调用echo scerweima 1(' https://www . Baidu.com ');

3.生成二维码(不生成图片文件)

//3.生成原始二维码(无图片文件)函数scerweima 2($ URL=' '){ require _ once ' phpqrcode . PHP ';$ value=$ url//二维码内容$ errorCorrectionLevel=' L//容错级别$ matrix pointsize=5;//生成图像大小//生成二维码图像$ QR=qrcode:3360png ($ value,false,$ errorcorrectionlevel,$ matrixpoint size,2);}//调用查看结果scerweima 2(' https://www . Baidu.com ');前两种方法,每次调用都会在本地生成二维码图片,第三种方法,二维码直接输出到浏览器,不生成文件。

PS:这里有两个与二维码相关的在线工具,供大家参考:

在线二维码生成工具(增强版)http://tools.jb51.net/transcoding/jb51qrcode

在线二维码解码和识别工具http://tools.jb51.net/transcoding/trans_qrcode

更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》、《php常见数据库操作技巧汇总》、0103010

希望本文对PHP编程有所帮助。

更多资讯
游戏推荐
更多+