使用phpqrcode生成任意尺寸二維碼的方法
算法
在Yii2中整合phpqrcode用於生成二維碼,其代碼如下:
//返回生成普通二維碼地址 $qrcode_url 爲網址 $qrcode_type類型,存放目錄 $mac爲參數
public static function getPuTongQrcode($qrcode_url, $qrcode_type, $mac, $size = '148')
{
//引入phpqrcode類
require_once 'phpqrcode.php';
$qrCode = new \QRcode();
$path = '/uploaded/qrcode/qipa250/' . date("Ymd");
if (!is_dir(Yii::$app->basePath . $path)) {
mkdir(Yii::$app->basePath . $path, 0777, true);
}
//生成的二維碼路徑參數
$mac_new = str_replace('*', '_', $mac) . '_' . $qrcode_type;
$base_url = Yii::$app->params['localUrl'];//本地路徑參數
$filepath = $path . '/' . $qrcode_type . '_' . $mac_new . '_' . md5($qrcode_url) . '_' . $size . '.png';
//生成不同的尺寸大小圖片 算法 有一定出入,比傳入的生成的二維碼要大
$qrcode_size = floor($size / 37 * 100) / 100;
$filename = Yii::$app->basePath . $filepath;
//查詢是否存在,存在則直接返回,不存在,則生成 不用每次都生成
$putong_qrcodeimage = $base_url . $filepath;
if (!file_exists($putong_qrcodeimage)) {
$qrCode::png($qrcode_url, $filename, 'L', $qrcode_size, 2);
}
return $putong_qrcodeimage;
}