首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP QR Code 庫生成帶 Logo 二維碼完整教程:從基礎到進階

     編輯:PHP 綜合知識

PHP QR Code 是純 PHP 實現的二維碼生成庫,無需安裝擴展,支援誤差校正、尺寸調整、Logo 嵌入。本文從庫下載、基礎輸出、檔案儲存、到帶 Logo 合成圖片的完整流程,提供可直接複製執行的代碼範例。

一、庫獲取與安裝

下載地址

目錄結構

phpqrcode/
├── phpqrcode.php  # 主入口
├── qrlib.php      # 便捷封裝
└── ... (其他核心類別)

只需將整個 phpqrcode 目錄放入專案即可,無需 Composer、無需編譯。

二、基礎用法三種模式

1. 直接瀏覽器輸出 (適合動態圖片標籤)

QR Code 範例 (實際運行會顯示二維碼圖片)

2. 儲存為檔案

include('phpqrcode/phpqrcode.php');

$data = 'https://www.example.com';
$filename = 'qrcode.png';
$errorCorrectionLevel = 'L';
$matrixPointSize = 4;
$margin = 2; // 邊距

QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, $margin);

3. 參數詳細說明

參數說明範圍/預設
$text編碼內容字串
$outfile輸出檔案路徑,false 直接輸出false / 路徑
$level誤差校正等級L(7%)/M(15%)/Q(25%)/H(30%),預設 L
$size模組大小 (像素)1-10,預設 3-4
$margin靜區邊距 (模組數)0-10,預設 4
$saveandprint是否同時儲存並輸出true/false,預設 false

三、進階:生成中間帶 Logo 的二維碼

原理:利用高誤差校正 (H/Q 級) 容錯特性,將 Logo 覆蓋在二維碼中心,掃碼仍可識別。

四、Logo 設計與生成成功率建議

建議項目說明
誤差校正等級必須用 H 級 (30%),L/M 級覆蓋 Logo 後極大機率無法識別
Logo 佔比不超過二維碼面積的 1/5 ~ 1/6 (本例用 1/5)
Logo 格式PNG 透明背景,避免白底遮擋定位點
Logo 內容簡單圖標優於複雜文字,邊緣留白 10-20%
測試驗證生成後務必用多款掃碼 App (微信、支付寶、iOS 相機) 實測

五、常見問題排查

  1. 掃不出來:降低 Logo 尺寸、提升到 H 級、增加二維碼尺寸 (matrixPointSize 8-10)
  2. Logo 變形:檢查 imagecopyresampled 參數,確保寬高比例一致
  3. 記憶體不足:大尺寸二維碼 (size > 10) 可能超過 memory_limit,調大或分塊處理
  4. 中文內容亂碼:確保 PHP 檔案 UTF-8 編碼,內容字串為 UTF-8

六、整合到框架 (ThinkPHP/Laravel 範例)

// ThinkPHP 控制器方法
public function qrcode() {
    $url = input('url', 'https://example.com');
    $logo = input('logo', ''); // 可選
    
    $file = 'uploads/qrcode_' . md5($url) . '.png';
    if (!is_file($file)) {
        // 調用上述生成邏輯...
    }
    return json(['url' => '/'.$file]);
}

PHP QR Code 零依賴、純 PHP、功能完整,是中小專案生成二維碼的首選方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved