Php / Thinkphp 之 使用phpqrcode 生成自定义二维码

前言

  • phpqrcode是一个现成的类文件,看懂类就可以很方便的生成二维码文件。
  • phpqrcode类文件:点此下载
  • 注意php环境必须开启支持GD2拓展库支持,默认是开启的。

分析

  • 从上文网址下载下来的是一个压缩包,里面包含很多如演示代码。但我们生成二维码只需要phpqrcode.php就行,不需要任何外部文件。
  • phpqrcode.php是包含多各类的集合文件,我们需要用的是QRcode类(第2964行)。
  • 这里主要用phpqrcode.php文件QRcode类的png方法。接下来分析png方法。
    • public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
      {
      $enc = QRencode::factory($level, $size, $margin);
      return $enc->encodePNG($text, $outfile, $saveandprint=false);
      }
    • 第1个参数$text:二维码包含的内容,可以是链接、文字、json字符串等等;
    • 第2个参数$outfile:默认为false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径;
    • 第3个参数$level:默认为L,这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别;二维码容错率即是指二维码图标被遮挡多少后,仍可以被扫描出来的能力。容错率越高,则二维码图片能被遮挡的部分越多。二维码容错率用字母表示,容错能力等级分为:L、M、Q、H四级:L:7%,M:15%,Q:25%,H:30%。
    • 第4个参数$size:控制生成图片的大小,默认为4;
    • 第5个参数$margin:控制生成二维码的空白区域大小;
    • 第6个参数 s a v e a n d p r i n t outfile必须传递图片路径;

实现

<?php
function getQRcode($value=''){  
    require_once 'phpqrcode.php';
    // $value 二维码内容, 

    $errorCorrectionLevel = 'L';    //容错级别   
    $matrixPointSize = 5;           //生成图片大小    

    //生成二维码图片  
    $filename = 'qrcode/'.microtime().'.png';  
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);    

    $QR = $filename;                //已经生成的原始二维码图片文件    
    $QR = imagecreatefromstring(file_get_contents($QR));

    //输出图片    
    imagepng($QR, 'qrcode.png');    
    imagedestroy($QR);  
    return '<img src="qrcode.png" alt="TickNet">';     
}
//调用查看结果  
echo getQRcode('测试');  

猜你喜欢

转载自blog.csdn.net/deaidai/article/details/79800699
今日推荐