天天看點

PHP生成二維碼方法

第一種是 生成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;
    }