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

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

因此關於是否要寫這篇博客;我是猶豫了再三的;

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

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

老規矩;以bjyadmin項目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

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://phpqrcode.sourceforge.net/

白俊遙博客


 本文爲白俊遙原創文章,轉載無需和我聯繫,但請註明來自白俊遙博客http://baijunyao.com                        


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章