使用phpqrcode生成二维码

  

使用PHP语言生成二维码,还是挺有难度的,当然调用生成二维码图片的接口(比如:联图网http://www.liantu.com/的接口)除外,如果自己写代码生成,真的无从下手。然而,我们可以使用phpqrcode这个现成的类文件,PHP二维码生成类库,利用它可以轻松生成二维码。
前期准备:
1. phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/
PHP 2.环境必须开启支持阻止GD2扩展库支持(一般情况下都是开启状态)

  

方法解读:
下载下来的类文件是一个压缩包,里边包含很多文件和演示程序,我们只需要里边的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件,我们需要用到里边的QRcode类(第2963行)的png()方法(第3090行):
公共静态函数png(文本,输出文件=false美元,美元水平=QR_ECLEVEL_L大?3美元,利润=4美元,美元saveandprint=false)
{
$ enc=QRencode:工厂(水平,规模,美元保证金美元);
返回$ enc→encodePNG(文本,输出文件,美元saveandprint美元=false);
}
第1个参数美元文本:二维码包含的内容,可以是链接,文字,json字符串等等;
第2个参数美元输出文件:默认为假,不生成文件,只将二维码图片返回输出,否则需要给出存放生成二维码图片的文件名及路径。
第3个参数美元水平:默认为L,这个参数可传递的值分别是L (QR_ECLEVEL_L, 7%), M (QR_ECLEVEL_M, 15%)、问(QR_ECLEVEL_Q, 25%)、H (QR_ECLEVEL_H, 30%),这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别。
第4个参数大小:美元控制生成图片的大小,默认为4,
第5个参数美元保证金:控制生成二维码的空白区域大小;
第6个参数美元saveandprint:保存二维码图片并显示出来,美元输出文件必须传递图片路径;

  

使用示例:
生成二维码(生成图片文件)
//1。生成原始的二维码(生成图片文件)
函数scerweima ($ url=") {
require_once phpqrcode.php”;
value=https://www.yisu.com/zixun/url美元;//二维码内容
errorCorrectionLevel美元=癓”;//容错级别
matrixPointSize=5美元;//生成图片大小
//生成二维码图片
$ filename=' qrcode/.microtime () . png”;
QRcode:: png (errorCorrectionLevel美元价值,文件名,美元,matrixPointSize美元,2);
QR=美元文件名;//已经生成的原始二维码图片文件
$ QR=imagecreatefromstring (file_get_contents (QR)美元);
//输出图片
imagepng (QR美元,“qrcode.png”);
imagedestroy (QR);
返回https://www.yisu.com/zixun/' & lt; img src=" qrcode.png " alt="使用微信扫描支付“>”;


}   

//调用查看结果
回声scerweima (“https://www.baidu.com”);
在生成的二维码中加上标识(生成图片文件)
//2。在生成的二维码中加上标识(生成图片文件)
函数scerweima1 ($ url=") {
require_once phpqrcode.php”;
value=https://www.yisu.com/zixun/url美元;//二维码内容
errorCorrectionLevel美元=' H ';//容错级别
matrixPointSize美元=6;//生成图片大小
//生成二维码图片
$ filename=' qrcode/.microtime () . png”;
QRcode:: png (errorCorrectionLevel美元价值,文件名,美元,matrixPointSize美元,2);
美元标志=' qrcode/logo.jpg ';//准备好的标志图片
QR=美元文件名;//已经生成的原始二维码图
如果(file_exists(标志)美元){
$ QR=imagecreatefromstring (file_get_contents (QR)美元);//目标图象连接资源。
$标志=imagecreatefromstring (file_get_contents(标志)美元);//源图象连接资源。
$ QR_width=imagesx (QR);//二维码图片宽度
$ QR_height=imagesy (QR);//二维码图片高度
$ logo_width=imagesx(美元标志);//标识图片宽度
$ logo_height=imagesy(美元标志);//标识图片高度
logo_qr_width=QR_width/4美元;//组合之后标志的宽度(占二维码的1/5)
美元规模=logo_width/logo_qr_width美元;//标志的宽度缩放比(本身宽度/组合后的宽度)
logo_qr_height=logo_height美元/美元规模;//组合之后商标的高度
$ from_width=(QR_width - logo_qr_width美元)/2;//组合之标志左后上角所在坐标点
//重新组合图片并调整大小
/*

  
      <李> imagecopyresampled()将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
    */
    imagecopyresampled (QR美元,美元标志,from_width美元,美元from_width, 0, 0, logo_qr_width美元,美元logo_qr_height, logo_width美元,美元logo_height);
    }
    //输出图片
    imagepng (QR美元,“qrcode.png”);
    imagedestroy (QR);
    imagedestroy(美元标志);
    返回https://www.yisu.com/zixun/' & lt; img src=" qrcode.png " alt="使用微信扫描支付“>”;李

    使用phpqrcode生成二维码