萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 使用 zlib 壓縮字串存入 MySQL

當需要將長文本(如文章內容、日誌)壓縮後存入資料庫以節省空間時,可啟用 PHP zlib 擴展,使用 gzcompress() 壓縮、gzuncompress() 解壓。資料庫欄位類型建議用 BLOB 或 VARBINARY 儲存二進制資料。

啟用擴展

php.ini 中啟用:extension=php_zlib.dll(Windows)或 extension=zlib.so(Linux)。

基本範例

<?php
$x = "hello world";
$x = gzcompress($x);  // 壓縮
echo $x . "<br>";
echo gzuncompress($x); // 解壓
?>

實務應用流程

  1. 寫入:$compressed = gzcompress($long_text); → 存入 BLOB 欄位。
  2. 讀取:從資料庫取出二進制資料 → $original = gzuncompress($blob_data);。
  3. 查詢:壓縮後無法直接用 SQL LIKE 搜尋,需先解壓或另建全文索引欄位。

補充說明

  • gzencode()/gzdecode() 輸出標準 gzip 檔案格式(含檔頭),適合檔案下載;gzcompress()/gzuncompress() 為 ZLIB 格式,資料較精簡,適合資料庫儲存。
  • 壓縮比視資料內容而定,純文本通常可達 60%~80% 減量。
  • PHP 7.0+ 內建 zlib,通常無需額外安裝。
copyright © 萬盛學電腦網 all rights reserved