| 維度 | Google Chart API | PHP QR Code 庫 |
|---|---|---|
| 部署方式 | 外部依賴,無需本地庫 | 本地庫,需 GD2 擴展 |
| 離線可用 | 否 | 是 |
| 自定義程度 | 參數配置 | 程式碼級控制 |
| 嵌入 Logo | 不支援 | 支援(GD 圖像合成) |
| 生成效能 | 網路延遲 | 本地生成,極快 |
function generateQRFromGoogle($content, $size = 150, $level = 'L', $margin = 0) {
$content = urlencode($content);
$url = "https://chart.googleapis.com/chart?chs={$size}x{$size}&cht=qr&chld={$level}|{$margin}&chl={$content}";
return '
';
}
// 使用
echo generateQRFromGoogle('https://example.com', 200, 'M', 2);
參數說明:
chs:圖片尺寸(寬x高)chld:錯誤修正級別|邊距,級別 L(7%) M(15%) Q(25%) H(30%)chl:URL 編碼後的內容⚠️ 注意:Google Chart API 官方已停止維護,生產環境建議遷移至本地庫。
# 下載庫文件 wget https://sourceforge.net/projects/phpqrcode/files/latest/download -O phpqrcode.zip unzip phpqrcode.zip # 需啟用 GD2 擴展 php -m | grep gd
require_once 'phpqrcode/qrlib.php';
// 直接輸出到瀏覽器
QRcode::png('https://example.com');
// 保存到文件
QRcode::png('https://example.com', 'qrcode.png', QR_ECLEVEL_L, 6, 2);
QRcode::png($text, $outfile, $level, $size, $margin, $saveAndPrint) 參數詳解:
$level:QR_ECLEVEL_L/M/Q/H 對應 7%/15%/25%/30% 容錯$size:模組像素大小(預設 3)$margin:靜區寬度(預設 4 模組)利用 QR 碼容錯特性,中心區域可覆蓋 Logo 而不影響掃描。
require_once 'phpqrcode/qrlib.php'; $content = 'https://example.com'; $logoPath = 'logo.png'; $outputPath = 'qrcode_with_logo.png'; // 1. 生成基礎 QR 碼 QRcode::png($content, $outputPath, QR_ECLEVEL_H, 8, 2); // 高容錯 H 級 // 2. GD 圖像合成 $qr = imagecreatefromstring(file_get_contents($outputPath)); $logo = imagecreatefromstring(file_get_contents($logoPath)); $qrW = imagesx($qr); $qrH = imagesy($qr); $logoW = imagesx($logo); $logoH = imagesy($logo); // Logo 佔 QR 碼 1/5 寬度 $logoTargetW = $qrW / 5; $scale = $logoW / $logoTargetW; $logoTargetH = $logoH / $scale; // 置中座標 $dstX = ($qrW - $logoTargetW) / 2; $dstY = ($qrH - $logoTargetH) / 2; // 重採樣合成 imagecopyresampled($qr, $logo, $dstX, $dstY, 0, 0, $logoTargetW, $logoTargetH, $logoW, $logoH); // 輸出最終圖片 imagepng($qr, $outputPath); imagedestroy($qr); imagedestroy($logo); echo '';
原文包含一個 UPC-A 條碼生成函數,此處不再贅述。現代項目建議使用成熟庫(如 picqer/php-barcode-generator)支援 Code128、EAN13、QR 等多種格式。
picqer/php-barcode-generator