thinkphp3.2使用PHPQrcode實現二維碼


Thinkphp中沒有二維碼相關的生成庫,百度有不少工具和庫 這里就實例一下通過think3.2搭配phpqrcode來完成生成二維碼的功能。

至於phpQrcode庫文件 百度很容易找到這里也給大家放個鏈接

下載地址:https://sourceforge.net/projects/phpqrcode/files/latest/download?source=typ_redirect

放置到Thinkphp框架的類文件下

在“ThinkPHP\Library\Vendor\”下新建目錄phpqrcode,將壓縮包內容解壓到該文件夾下。

這里就簡單介紹下使用Index控制器。

在IndexController控制器下添加如下方法:

public function qrcode($url="www.baidu.com",$level=3,$size=4) { Vendor('phpqrcode.phpqrcode'); $errorCorrectionLevel =intval($level) ;//容錯級別也就是誤差 $matrixPointSize = intval($size);//生成二維碼圖片大小 //生成二維碼圖片 $object = new \QRcode(); $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); 
       // 使用 -> 或 :: 都可以              
       //$object::png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
}
這樣直接訪問你的地址路徑 就可以看到二維碼。
但是這樣二維碼 只是生成了 如果想效果更好 比如說 帶logo 或者自定義等等......
這里再教大家 使用phpqrcode 實現代logo的二維碼

先調用phpqrcode生成一張二維碼,再使用PHP的image相關函數將logo圖片添加到生成的二維碼圖片上。
這里我直接放置在項目根目錄下了 具體的位置小伙伴們自己定 。


public function index($url='http://www.baidu.com',$level=3,$size=20){
Vendor('phpqrcode.phpqrcode');//引入PHPQrcode
$Level =intval($level) ;//容錯級別
$matrixPointSize = intval($size);//生成圖片大小
//生成二維碼圖片
//echo $_SERVER['REQUEST_URI'];
$url1 = "http://baidu.com";
$object = new \QRcode();
$time = time();
$object::png($url1, $time.'.png', $Level, $matrixPointSize, 2);
$logo = 'logo.png';//准備好想要放置的logo圖片
$QR = $time.'.png';
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圖片寬度
$logo_height = imagesy($logo);//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, $time.'hc.png');

echo '<img src='.__ROOT__.'/'.$time.'hc.png width="100px" height="100px">';
$img =__ROOT__.'/'.$time.'hc.png';

sleep(10);//10秒后刪除
unlink($img);生成刪除這個二維碼
}

到此兩種二維碼的生成以經結束 大家自己試驗一下吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM