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