安裝
使用 Composer 安裝 PHP QR碼函式庫。
Composer
composer require endroid/qr-codeComposer (alt)
composer require chillerlan/php-qrcode使用 PHP 函式庫產生 QR碼
使用熱門 PHP QR碼函式庫的程式碼範例。
Basic QR Code with endroid/qr-code
<?php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qrCode = new QrCode('https://qrcode.fun');
$qrCode->setSize(300);
$qrCode->setMargin(10);
$writer = new PngWriter();
$result = $writer->write($qrCode);
// Save to file
$result->saveToFile('qrcode.png');
// Or output directly
header('Content-Type: ' . $result->getMimeType());
echo $result->getString();QR Code with Logo (endroid)
<?php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Writer\PngWriter;
use Endroid\QrCode\ErrorCorrectionLevel;
$qrCode = new QrCode(
data: 'https://qrcode.fun',
size: 300,
margin: 10,
foregroundColor: new Color(26, 43, 60),
backgroundColor: new Color(255, 255, 255),
errorCorrectionLevel: ErrorCorrectionLevel::High
);
$logo = new Logo(
path: 'logo.png',
resizeToWidth: 80
);
$writer = new PngWriter();
$result = $writer->write($qrCode, $logo);
$result->saveToFile('qrcode_logo.png');QRCode.fun API
透過 API 在 PHP 中產生 QR碼
從 PHP 使用 cURL 或 Guzzle 呼叫 QRCode.fun API。
PHP API 整合
<?php
$payload = json_encode([
'data' => 'https://qrcode.fun',
'width' => 300,
'height' => 300,
'type' => 'png',
'margin' => 10,
'dotsOptions' => ['color' => '#1A2B3C', 'type' => 'rounded'],
'cornersSquareOptions' => ['color' => '#8564C3', 'type' => 'extra-rounded'],
'backgroundOptions' => ['color' => '#FFFFFF'],
]);
$ch = curl_init('https://qrcode.fun/api/generate-qr-styled');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
// $result['data'] contains the base64 PNG data URL
echo substr($result['data'], 0, 50);即時 QR碼預覽
立即嘗試使用 PHP 產生 QR碼。
QR碼預覽
原生函式庫 vs API
比較使用 PHP QR碼函式庫與 QRCode.fun API。
| 功能 | 原生函式庫 | QRCode.fun API |
|---|---|---|
| 設定複雜度 | Composer 安裝 + GD/Imagick | 透過 cURL 發送單次 HTTP 請求 |
| 自訂 | 顏色、標誌、標籤(endroid) | 完整樣式:顏色、形狀、標誌 |
| 離線支援 | 是 | 需要網路 |
| 維護 | Composer 更新 | 始終保持最新 |
| 輸出格式 | PNG, SVG, PDF(endroid) | PNG, SVG |
PHP QR碼使用情境
PHP 應用中 QR碼的常見情境。
Laravel 與 Symfony
在 Laravel 或 Symfony 控制器中產生 QR碼,用於使用者資料、雙重認證和付款連結。
WordPress 外掛
建構 WordPress 外掛,為文章、產品和自訂內容類型產生 QR碼。
電子商務
為產品頁面、付款閘道、訂單追蹤和電子收據建立 QR碼。
PDF 發票
使用 TCPDF 或 FPDF 將 QR碼嵌入 PDF 發票中,用於付款驗證和文件連結。
常見問題
關於使用 PHP 產生 QR碼的常見問題。
endroid/qr-code 是功能最豐富的選擇,支援顏色、標誌、標籤和多種輸出格式。chillerlan/php-qrcode 是適用於簡單情境的輕量級替代方案。