gzcompress

関数の概要

gzcompress は、PHPで文字列を圧縮するための関数です。zlibライブラリを使ってデータを圧縮し、データのサイズを小さくすることができます。特に大きなテキストデータやJSON、ログデータの圧縮に役立ちます。

パラメータの説明

  • data (string): 圧縮したい元の文字列を指定します。
  • level (int, 任意): 圧縮レベルを0~9の範囲で指定します。0は圧縮なし、9が最高圧縮。デフォルトは-1(標準圧縮レベル)です。
  • encoding_mode (int, PHP 7.0.0以降、任意): 圧縮形式を指定します。例えば ZLIB_ENCODING_DEFLATE, ZLIB_ENCODING_GZIP, ZLIB_ENCODING_RAW が選べます。指定しなければデフォルトのzlib形式となります。

戻り値

圧縮に成功すると圧縮されたバイナリ文字列を返します。圧縮に失敗すると FALSE を返します。圧縮後の文字列はバイナリデータなので扱いに注意が必要です。

使用例

基本的な使い方

<?php
$data = "この文章を圧縮します。";
$compressed = gzcompress($data);
echo $compressed;
?>

文字列「この文章を圧縮します。」を標準の圧縮レベルで圧縮しています。出力はバイナリデータなのでそのまま画面に表示すると文字化けします。

圧縮レベルを指定する例

<?php
$data = "圧縮レベルを指定してみます。";
$compressed = gzcompress($data, 9); // 最高圧縮レベル
echo $compressed;
?>

圧縮レベル9を指定してデータをより強く圧縮しています。圧縮レベルによって処理速度と圧縮率のバランスを調整可能です。

圧縮したデータの展開(復元)例

<?php
$data = "展開用のサンプルテキスト";
$compressed = gzcompress($data);
$original = gzuncompress($compressed);
echo $original; // 展開して元の文字列を表示
?>

圧縮した文字列を gzuncompress 関数で元の文字列に戻す例です。圧縮・展開のセットでデータを扱う場合に便利です。

異なるエンコーディングモード指定例

<?php
$data = "gzip形式で圧縮したい場合";
$compressed = gzcompress($data, 6, ZLIB_ENCODING_GZIP);
echo $compressed;
?>

PHP7以降で利用可能な第三引数を使って圧縮形式をgzipに指定した例です。zlib形式以外を使いたい場合に設定します。

関連する関数

  • gzuncompressgzcompressで圧縮したデータを解凍する。
  • gzencode:gzip形式で圧縮する。
  • gzdecode:gzip形式のデータを解凍する。
  • gzdeflate:deflate形式で圧縮する。

まとめ

gzcompressはPHPで手軽に文字列データを圧縮できる便利な関数です。圧縮レベルや圧縮形式も柔軟に指定でき、データ通信量削減やストレージ節約に役立ちます。圧縮後は gzuncompress を使って元に戻すことができるため、安全にデータのやり取りが可能です。初心者でも簡単に使えるため、圧縮処理が必要な場面でぜひ活用してください。