反钓鱼网站建设期,wordpress分类目录高亮,海山免费网站建设,石家庄专门做网站使用ThinkPHP框架引入phpqrcode类生成二维码后#xff0c;发现每次必须通过TP框架生成#xff0c;略显繁琐#xff0c;打算写一个简单的方法#xff0c;然后运行php后直接批量生成二维码。方法也简单#xff0c;直接写个PHP脚本#xff0c;然后引入phpqrcode类#xff0…使用ThinkPHP框架引入phpqrcode类生成二维码后发现每次必须通过TP框架生成略显繁琐打算写一个简单的方法然后运行php后直接批量生成二维码。方法也简单直接写个PHP脚本然后引入phpqrcode类然后在写个方法直接调用方法即可。
一、前期准备
phpqrcode类文件下载下载地址https://sourceforge.net/projects/phpqrcode/PHP环境必须开启支持GD2扩展库支持一般情况下都是开启状态
二、方法解读
下载下来的类文件是一个压缩包里边包含很多文件和演示程序我们只需要里边的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件我们需要用到里边的QRcode类第2963行的png()方法第3090行
?php
//...省略代码...
public static function png($text, $outfile false, $level QR_ECLEVEL_L, $size 3, $margin 4, $saveandprintfalse){$enc QRencode::factory($level, $size, $margin);return $enc-encodePNG($text, $outfile, $saveandprintfalse);
}
//...省略代码...第1个参数$text二维码包含的内容可以是链接、文字、json字符串等等 第2个参数$outfile默认为false不生成文件只将二维码图片返回输出否则需要给出存放生成二维码图片的文件名及路径 第3个参数$level默认为L这个参数可传递的值分别是L(QR_ECLEVEL_L7%)、M(QR_ECLEVEL_M15%)、Q(QR_ECLEVEL_Q25%)、H(QR_ECLEVEL_H30%)这个参数控制二维码容错率不同的参数表示二维码可被覆盖的区域百分比也就是被覆盖的区域还能识别 第4个参数$size控制生成图片的大小默认为4 第5个参数$margin控制生成二维码的空白区域大小 第6个参数$saveandprint保存二维码图片并显示出来$outfile必须传递图片路径
三、使用示例
1. 生成一张二维码(生成图片文件)
?php
header(content-type:text/html;charsetutf-8);
//引入phpqrcode类文件
require_once phpqrcode.php;
// 生成原始的二维码(生成图片文件)
function scerweima($url){$value $url; //二维码内容$errorCorrectionLevel L; //容错级别$matrixPointSize 11; //生成图片大小//1、创建二维码图片保存目录$dir qrcode;if(!is_dir($dir)){mkdir($dir,0777,true);}//2、生成二维码图片$filename $dir./.$value..png;QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 1);$QR $filename; //已经生成的原始二维码图片文件$QR imagecreatefromstring(file_get_contents($QR));//输出图片//1、以 PNG 格式将图像输出到浏览器或输出文件到指定目录imagepng($QR, qrcode.png);//2、释放有关二维码图片的内存imagedestroy($QR);//3、web页面上显示图片return img srcqrcode.png alt使用微信扫描支付;
}
//调用查看结果
echo scerweima(123456);2、批量生成二维码
?php
header(content-type:text/html;charsetutf-8);
require_once phpqrcode.php;
// 1. 生成原始的二维码(生成图片文件)
function scerweima($url){$value $url; //二维码内容$errorCorrectionLevel L; //容错级别$matrixPointSize 11; //生成图片大小//1、创建二维码图片保存目录$dir qrcode;if(!is_dir($dir)){mkdir($dir,0777,true);}//生成二维码图片$filename $dir./.$value..png;QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 1);
}
//调用查看结果
for($i10001;$i10500;$i){$code 370125;$code . $i;scerweima($code);
}3、在生成的二维码中加上logo(生成图片文件)
?php
function scerweima1($url){require_once phpqrcode.php;$value $url; //二维码内容$errorCorrectionLevel H; //容错级别$matrixPointSize 6; //生成图片大小//生成二维码图片$filename qrcode/.microtime()..png;QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);$logo qrcode/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左上角所在坐标点//重新组合图片并调整大小/** imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中*/imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);}//输出图片imagepng($QR, qrcode.png);imagedestroy($QR);imagedestroy($logo);return img srcqrcode.png alt使用微信扫描支付;
}//调用查看结果echo scerweima1(123456);4、生成二维码(不生成图片文件)
?php
function scerweima2($url){require_once phpqrcode.php;$value $url; //二维码内容$errorCorrectionLevel L; //容错级别$matrixPointSize 5; //生成图片大小//生成二维码图片$QR QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//调用查看结果
scerweima2(123456);