php-zbarcode 需要系統層面安裝 ImageMagick(影像處理)與 zbar(條碼/QR Code 掃描引擎),再編譯 PHP 擴充套件。
yum install ImageMagick.x86_64 ImageMagick-devel.x86_64
wget https://jaist.dl.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.bz2 tar jxvf zbar-0.10.tar.bz2 cd zbar-0.10 ./configure --without-gtk --without-python --without-qt --prefix=/usr/local/zbar make && make install # 更新動態連結庫快取 echo "/usr/local/zbar/lib/" >> /etc/ld.so.conf ldconfig ln -s /usr/local/zbar/lib/pkgconfig/zbar.pc /usr/lib64/pkgconfig/zbar.pc
unzip php-zbarcode-master.zip cd php-zbarcode-master /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
編譯成功會提示安裝路徑,如 /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
編輯 php.ini 加入:
extension=zbarcode.so
重啟 PHP-FPM/Apache,phpinfo() 搜尋 zbarcode 確認載入成功。
$image = new ZBarCodeImage("./test.png"); // 建立影像物件
$scanner = new ZBarCodeScanner(); // 建立掃描器
$barcode = $scanner->scan($image); // 掃描
if (!empty($barcode)) {
foreach ($barcode as $code) {
printf("Found type %s barcode with data %s\n", $code['type'], $code['data']);
}
}
configure 失敗:確認 zbar.pc 路徑已加入 PKG_CONFIG_PATHlibzbar.so:執行 ldconfig 並確認 /etc/ld.so.conf.d/ 包含 zbar 路徑phpize 必須使用目標 PHP 環境的二進位檔更多 PHP 影像處理技巧請參考專題:《PHP圖形與圖片操作技巧匯總》、《PHP陣列(Array)操作技巧大全》等。