4006168059

全站搜索

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

分类:行业动态 511

第一种方法找网上的api接口

 比如:联图

品味二维码:

 

草料:

其他都可以在网上搜到很多,但是这些api可能过一段时间会失效,以前就遇到过这样的情况,这就接口不可控性太大,所以我们要介绍第二种方法

二、用插件生成二维码

这里使用的是PHPQRcode 新建函数(这里用的thinkPhp框架)

 /**

 * 生成二维码

 * @param $save_path 二维码保存路径

 * @param string $qr_data 手机扫描后要跳转的网址

 * @param string $qr_level 默认纠错比例 分为L、M、Q、H四个等级,H代表最高纠错能力

 * @param int $qr_size 二维码图大小,1-10可选,数字越大图片尺寸越大

 * @param string $save_prefix 图片名称前缀

 * @return bool|string

 */

function createQRcode($save_path, $qr_data = ‘PHP QR Code :)’, $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(‘data cannot be empty!’);

      }

      //生成文件名 文件路径+图片名字前缀+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(‘PHP QR Code :)’, $filename, $errorCorrectionLevel, $matrixPointSize, 2);

  }

  if (file_exists($PNG_TEMP_DIR . basename($filename))) {

      return basename($filename);

  } else {

      return FALSE;

  }

}

 

函数调用

$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合并之后的地址

 

上一篇: 下一篇:
展开更多
获取报价

loading...