1. 程式人生 > >thinkphp整合系列之phpqrcode生成二維碼

thinkphp整合系列之phpqrcode生成二維碼

php生成二維碼其實挺簡單的;當然指的是使用qrcode類庫;

因此關於是否要寫這篇部落格;我是猶豫了再三的;

不過最後還是決定寫下吧;如果有童鞋急著用;就可以直接引了;

再個也可以作為即將寫的文章微信支付生成的二維碼做個鋪墊;

1:首先將/ThinkPHP/Library/Vendor/下的Phpqrcode資料夾拷貝到自己的專案中;

2:/Application/Common/Common/function.php增加如下函式

/**
 * 生成二維碼
 * @param  string  $url  url連線
 * @param  integer $size 尺寸 純數字
 */
function qrcode($url,$size=4){
    Vendor('Phpqrcode.phpqrcode');
    // 如果沒有http 則新增
    if (strpos($url, 'http')===false) {
        $url='http://'.$url;
    }
    QRcode::png($url,false,QR_ECLEVEL_L,$size,2,false,0xFFFFFF,0x000000);
}

然後直接呼叫qrcode($url,$size)函式;第一個引數傳連結;第二個引數傳大小即可;

3:到這裡已經可以生成二維碼了;如果想對二維碼更加個性化定製的話;

那麼下面就來講解下這堆引數的作用;

png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4,
 $saveandprint=false, $back_color = 0xFFFFFF, $fore_color = 0x000000)

第一個引數$text;就是上面程式碼裡的URL網址引數;

第二個引數$outfile預設為否;不生成檔案;只將二維碼圖片返回;否則需要給出存放生成二維碼圖片的路徑;

第三個引數$level預設為L;這個引數可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%);這個引數控制二維碼容錯率;不同的引數表示二維碼可被覆蓋的區域百分比。利用二維維碼的容錯率;我們可以將頭像放置在生成的二維碼圖片任何區域;

第四個引數$size;控制生成圖片的大小;預設為4;

第五個引數$margin;控制生成二維碼的空白區域大小;

第六個引數$saveandprint;儲存二維碼圖片並顯示出來;$outfile必須傳遞圖片路徑;

第七個引數$back_color;背景顏色;

第八個引數$fore_color;繪製二維碼的顏色;

note:第七、第八個引數需要傳16進位制是色值;並且要把“#”替換為“0x”
舉個栗子:
白色:#FFFFFF  =>  0xFFFFFF  
黑色:#000000  =>  0x000000  

白俊遙部落格

 本文為白俊遙原創文章,轉載無需和我聯絡,但請註明來自白俊遙部落格http://baijunyao.com