如何使用phpqrcode生成任意尺寸二維碼的方法

使用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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章