第一種是 生成bese64位字元串 好處就是不用存儲直接接口傳回能用
代碼如下
public function base64($url){
$level = 'L';// 糾錯級别:L、M、Q、H
$size = 6;// 點的大小:1到10,用于手機端4就可以了
$QRcode = new \QRcode();
ob_start();
$QRcode->png($url,false,$level,$size);
$imageString = base64_encode(ob_get_contents());
ob_end_clean();
return $imageString;
}
第二種是 生成圖檔并儲存圖檔 傳回圖檔路徑 自我感覺不太行 可是前台硬要我生成圖檔路徑emm
代碼如下
public function generateQrCode($url, $path = 'uploads/qrcode/',$prefix = null){
/* 若目錄不存在則建立之 */
$path = $path . date('Ymd');
if (!is_dir($path)) {
mkdir(iconv("UTF-8", "GBK", $path),0777,true);
}
vendor("phpqrcode.phpqrcode");
$QRcode = new \QRcode();
/* 二維碼内容 */
/* 糾錯級别:L、M、Q、H */
$level = 'L';
/* // 點的大小:1到10,用于手機端4就可以了 */
$size = 4;
/* // 下面注釋了把二維碼圖檔儲存到本地的代碼,如果要儲存圖檔,用$fileName替換第二個參數false */
$qrcode = time().rand(100,999);
$QR_path = $path . '/' . $qrcode . ".png";
/* // QRcode::png($text,$filename,$level,$size,$padding,$saveandprint); */
$QRcode->png($url, $QR_path, 'L', '6', '2', true);
return $QR_path;
}