使用phpqrcode生成二維碼

2021-02-14 程式設計師技術

作者丨江南極客 

https://blog.csdn.net/sinat_35861727/article/details/73862991 

使用PHP語言生成二維碼,還是挺有難度的,當然調用生成二維碼圖片的接口(比如:聯圖網http://www.liantu.com/的接口)除外,如果自己寫代碼生成,真的無從下手。然而,我們可以使用phpqrcode這個現成的類文件,PHP二維碼生成類庫,利用它可以輕鬆生成二維碼。

前期準備:

1.phpqrcode類文件下載,下載地址:

https://sourceforge.net/projects/phpqrcode/

2.PHP環境必須開啟支持GD2擴展庫支持(一般情況下都是開啟狀態)

方法解讀:

下載下來的類文件是一個壓縮包,裡邊包含很多文件和演示程序,我們只需要裡邊的phpqrcode.php這一個文件就可以生成二維碼了。它是一個多個類的集合文件,我們需要用到裡邊的QRcode類(第2963行)的png()方法(第3090行):

public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
{
    $enc = QRencode::factory($level, $size, $margin);
    return $enc->encodePNG($text, $outfile, $saveandprint=false);
}

第1個參數$text:二維碼包含的內容,可以是連結、文字、json字符串等等;

第2個參數$outfile:默認為false,不生成文件,只將二維碼圖片返回輸出;否則需要給出存放生成二維碼圖片的文件名及路徑;

第3個參數$level:默認為L,這個參數可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),這個參數控制二維碼容錯率,不同的參數表示二維碼可被覆蓋的區域百分比,也就是被覆蓋的區域還能識別;

第4個參數$size:控制生成圖片的大小,默認為4;

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

第6個參數$saveandprint:保存二維碼圖片並顯示出來,$outfile必須傳遞圖片路徑;

使用示例:

1. 生成二維碼(生成圖片文件)


function scerweima($url=''){
    require_once 'phpqrcode.php';

    $value = $url;                    

    $errorCorrectionLevel = 'L';   
    $matrixPointSize = 5;          

    
    $filename = 'qrcode/'.microtime().'.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);  

    $QR = $filename;              


    $QR = imagecreatefromstring(file_get_contents($QR));  

    
    imagepng($QR, 'qrcode.png');  
    imagedestroy($QR);
    return '<img src="qrcode.png" alt="使用微信掃描支付">';   
}


echo scerweima('https://www.baidu.com');

2. 在生成的二維碼中加上logo(生成圖片文件)


function scerweima1($url=''){
    require_once 'phpqrcode.php';
    $value = $url;                    
    $errorCorrectionLevel = 'H';   
    $matrixPointSize = 6;          
    
    $filename = 'qrcode/'.microtime().'.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);  

    $logo = 'qrcode/logo.jpg';     
    $QR = $filename;          

    if (file_exists($logo)) {   
        $QR = imagecreatefromstring(file_get_contents($QR));          
        $logo = imagecreatefromstring(file_get_contents($logo));      
        $QR_width = imagesx($QR);         
        $QR_height = imagesy($QR);            
        $logo_width = imagesx($logo);     
        $logo_height = imagesy($logo);        
        $logo_qr_width = $QR_width / 4;       
        $scale = $logo_width/$logo_qr_width;     
        $logo_qr_height = $logo_height/$scale;  
        $from_width = ($QR_width - $logo_qr_width) / 2;   

        
        
        imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height); 
    }   

    
    imagepng($QR, 'qrcode.png');  
    imagedestroy($QR);
    imagedestroy($logo);
    return '<img src="qrcode.png" alt="使用微信掃描支付">';   
}


echo scerweima1('https://www.baidu.com');

3. 生成二維碼(不生成圖片文件)


function scerweima2($url=''){
    require_once 'phpqrcode.php';

    $value = $url;                    
    $errorCorrectionLevel = 'L';   
    $matrixPointSize = 5;          
    
    $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}

scerweima2('https://www.baidu.com');

*前兩種方法,每調用一次都會在本地生成一張二維碼圖片,第三種方法,不生成文件,會直接輸出二維碼到瀏覽器中。

 推薦↓↓↓ 

涵蓋:程式設計師大咖、源碼共讀、程式設計師共讀、數據結構與算法、黑客技術和網絡安全、大數據科技、編程前端、Java、Python、Web編程開發、Android、iOS開發、Linux、資料庫研發、幽默程式設計師等。

相關焦點

  • (實用篇)使用PHP類庫PHPqrCode生成二維碼
    PHPqrCode是一個PHP二維碼生成類庫,利用它可以輕鬆生成二維碼,官網提供了下載和多個演示demo,查看地址:http://phpqrcode.sourceforge.net/。    下載官網提供的類庫後,只需要使用phpqrcode.php就可以生成二維碼了,當然您的PHP環境必須開啟支持GD2。
  • php生成二維碼的方法
    二、實現效果    三、PHP生成二維碼1、具備前提下載QR類庫,官網地址為:http://phpqrcode.sourceforge.net/Github地址:https://github.com/t0k4rt/phpqrcode下載之後即可得到
  • (進階篇)php生成帶logo二維碼方法小結
    一、使用的類庫1、phpqrcode(php庫)2、qrcode.js(javascript庫) 二、phpqrcode的使用只用php的類庫,也就是二維碼的生成在後臺操作。因為要在後臺生成帶logo的二維碼,那麼首先必須將logo圖片上傳至伺服器(在上傳這裡我用了webuploader) phpqrcode使用方法:首先下載phpqrcode:http://phpqrcode.sourceforge.net/然後在使用之前記得引入phpqrcode.php文件$value = $url;/
  • PHP QR Code生成二維碼
    二行代碼解決二維碼生成問題先來說說二維碼是神馬東西        二維條碼/二維碼(2-dimensional bar code)是用某種特定的幾何圖形按一定規律在平面
  • PHP將url生成二維碼,掃碼可跳轉
    最近項目開發中需實現一個功能:用戶可通過分享自己二維碼給他人掃碼註冊,註冊成功後成為自己的下級。
  • php網站製作如何生成二維碼
    草料:其他都可以在網上搜到很多,但是這些api可能過一段時間會失效,以前就遇到過這樣的情況,這就接口不可控性太大,所以我們要介紹第二種方法二、用插件生成二維碼這裡使用的是PHPQRcode 新建函數(這裡用的thinkPhp框架)/*** 生成二維碼* @param $save_path 二維碼保存路徑* @param string $qr_data 手機掃描後要跳轉的網址* @param string $qr_level 默認糾錯比例 分為L、M、Q、H四個等級,H代表最高糾錯能力* @param int $qr_size
  • 使用 Python 生成二維碼
    其中掃碼支付指手機通過掃描二維碼跳轉到支付頁面,再進行付款。這種新的支付方式,造就二維碼滿天飛的現象。那麼讓我們來扒一扒如何使用 Python 來生成二維碼圖片。1 二維碼二維碼(2-dimensional bar code),是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的。
  • 使用Python生成藝術二維碼
    安裝了 myqr 之後,就可以在命令行中使用它了。生成普通二維碼:➜  ~ myqr ilovepythonline 16: mode: byteSucceed! Check out your 2-H QR-code: /Users/anderson/qrcode.png生成的二維碼:
  • Python使用QRCode生成二維碼
    Python使用QRCode生成二維碼,qrcode會依賴Image這個包,所以我們首先安裝
  • 如何使用 Python 生成酷炫的二維碼?
    其中掃碼支付指手機通過掃描二維碼跳轉到支付頁面,再進行付款。這種新的支付方式,造就二維碼滿天飛的現象。那麼讓我們來扒一扒如何使用 Python 生成二維碼圖片。二維碼結構我們的目的是要使用 Python 生成 QR 碼,那我們需要先了解二維碼(QR 碼)的結構。
  • 二維碼生成工具——草料二維碼.
    草料二維碼是國內專業免費的二維碼生成網站。
  • 如何使用 Java 生成二維碼?
    編寫實體類實現二維碼的生成4. controller調用1.下載jar包(QRCode.jar)下載網址如下: QRCode生成二維碼網址:http://swetake.com/qrcode/index-e.html2. maven項目手動引入jar包mvn install:install-file-DgroupId=包名-DartifactId=項目名-Dversion=版本號-Dpackaging
  • 【二維碼生成器】快速生成個性二維碼
    用這款精美的二維碼生成器,您可以輕鬆地生成好看又獨特的二維碼。 這款二維碼製作器可以自定義二維碼的顏色,碼點,碼陣。您還可以添加logo和文本,來讓您的二維碼更加好看和特別。你不僅可以製作彩色二維碼,最香的是,你甚至可以使用由設計師設計的精美模板直接生成二維碼,讓二維碼製作這件事情變得簡單快捷!嘗試一下!用這款二維碼生成器來創造出人見人誇,人見人掃的二維碼吧!
  • Android-二維碼掃描與生成二維碼詳解
    原來寫過掃碼與生成二維碼的功能,今天分享給大家。我是用zxing這個開源項目來實現掃碼功能的。
  • 使用python-qrcode生成圖形二維碼
    或者更少的錯誤會被更正 7                    # ERRORCORRECTH:大約30%或者更少的錯誤會被更正 8border              # (默認4)四周留白包含的格子數                  9box_size            # (默認10)每個格子的像素數10image_factory       # (默認PIL)選擇生成圖片的形式
  • 批量生成二維碼
    在工作中,一般生成二維碼有常用的二維碼生成器。一些在線二維碼生成工具有很多。
  • iOS 花式二維碼生成和二維碼識別
    iOS 原生的二維碼識別非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以後打算儘量用原生的二維碼識別,然後最近把原生的二維碼生成也順便做了一遍
  • 二維碼生成神器打造你專屬的二維碼
    【公眾號回復 「1024」,免費領取30本經典編程書籍】我們經常使用微信二維碼
  • 小程序生成二維碼
    需求一:二維碼信息固定,為了性能優化,一般會建議二維碼由服務端生成,然後前端返回二維碼的圖片,這樣,我們可以結合小程序的wx.previewimage()這個方法可以方便下載和預覽二維碼;需求二:動態生成二維碼信息,由於很多詳情頁面都需要根據頁面數據的參數動態生成二維碼,所以,這個時候可以前端完成二維碼生成,也可以服務端完成,但是對別人的依賴最後的結果就是自己的無奈
  • 小碼二維碼助手-二維碼在線生成工具
    無意之中發現現在有很多二維碼在線生成的網站,比如草料二維碼,微信二維碼等等;但是這些網站會有各種問題不讓用戶完整的使用,可能是因為政策、