服务热线 400-660-8066

上海网站建设
首页 站内资讯

上海网站建设

站内资讯
上海网站建设 / 站内资讯 / 产品资讯 / 正文

php网站制作如何生成二维码

来源: All文章
发布时间:2023-06-14 09:31:19

  第一种方法找网上的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合并之后的地址

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-8066

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr