第一种方法找网上的api接口
比如:联图品味二维码:
草料:
其他都可以在网上搜到很多,但是这些api可能过一段时间会失效,以前就遇到过这样的情况,这就接口不可控性太大,所以我们要介绍第二种方法
二、用插件生成二维码
这里使用的是PHPQRcode新建函数(这里用的thinkPhp框架)
/**
*生成二维码
*@param$save_path二维码保存路径
*@paramstring$qr_data手机扫描后要跳转的网址
*@paramstring$qr_level默认纠错比例分为L、M、Q、H四个等级,H代表最高纠错能力
*@paramint$qr_size二维码图大小,1-10可选,数字越大图片尺寸越大
*@paramstring$save_prefix图片名称前缀
*@returnbool|string
*/
functioncreateQRcode($save_path,$qr_data='PHPQRCode:)',$qr_level='L',$qr_size=4,$save_prefix='qrcode'){
if(!isset($save_path))return'';
//设置生成png图片的路径
$PNG_TEMP_DIR=$save_path;
//导入二维码核心程序
vendor('PHPQRcode.class#phpqrcode');//PHPQRcode是文件夹名字,class#phpqrcode就代表class.phpqrcode.php文件名
//检测并创建生成文件夹
if(!file_exists($PNG_TEMP_DIR)){
mkdir($PNG_TEMP_DIR);
}
$filename=$PNG_TEMP_DIR.'test.png';
$errorCorrectionLevel='L';
if(isset($qr_level)in_array($qr_level,array('L','M','Q','H'))){
$errorCorrectionLevel=$qr_level;
}
$matrixPointSize=4;
if(isset($qr_size)){
$matrixPointSize=min(max((int)$qr_size,1),10);
}
if(isset($qr_data)){
if(trim($qr_data)==''){
die('datacannotbeempty!');
}
//生成文件名文件路径+图片名字前缀+md5(名称)+.png
$filename=$PNG_TEMP_DIR.$save_prefix.md5($qr_data.'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
//开始生成
QRcode::png($qr_data,$filename,$errorCorrectionLevel,$matrixPointSize,2);
}else{
//默认生成
QRcode::png('PHPQRCode:)',$filename,$errorCorrectionLevel,$matrixPointSize,2);
}
if(file_exists($PNG_TEMP_DIR.basename($filename))){
returnbasename($filename);
}else{
returnFALSE;
}
}
函数调用
$save_path='Qrcode/';//图片存储的绝对路径
$qr_data=C('PROTOCOL').$_SERVER['SERVER_NAME']..'/Share/member.html?str='.$member['mstr'];
$qr_level='H';
$qr_size='10';
$save_prefix='ZETA';
$filename=createQRcode($save_path,$qr_data,$qr_level,$qr_size,$save_prefix);
if($filename){
$pic=.'/'.$save_path.$filename;
}
$this-pic=$pic;
如何在利用PHPQRcode生成的二维码中间加上logo图片呢
$logo=.$member['picture'];//logo的图片地址
import(Org.Util.File);
$file=new\File($logo);
$logo=$file-getRealFile();
$file=new\File($pic);
$QR=$file-getRealFile();;//二维码图片地址
if($logo!==FALSE){
$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_height=imagesy($logo);
$logo_qr_width=$QR_width/5;
$scale=$logo_width/$logo_qr_width;
$logo_qr_height=$logo_height/$scale;
$from_width=($QR_width-$logo_qr_width)/2;
imagecopyresampled($QR,$logo,$from_width,$from_width,0,0,$logo_qr_width,$logo_qr_height,$logo_width,$logo_height);
}
imagepng($QR,$save_path.$filename);//跟logo合并之后的地址