gzdecode

関数の概要

gzdecode は、PHPでgzip形式で圧縮されたデータを解凍するための関数です。圧縮された文字列やバイナリデータを元の非圧縮状態に戻すことができ、特にHTTPレスポンスのボディデータなどgzip圧縮された内容を扱う際に便利です。

パラメータの説明

  • data(必須): gzip圧縮された文字列データを指定します。
  • length(省略可能): 解凍する最大バイト数を指定します。省略するとすべて解凍されます。

戻り値

解凍に成功した場合は元の非圧縮データ(文字列)が返されます。失敗した場合は FALSE が返されます。

使用例

基本的な使い方

<?php
$compressed = gzencode("これはテストデータです");
$decompressed = gzdecode($compressed);
echo $decompressed;  // 出力: これはテストデータです
?>

この例では、gzencode で作成したgzip圧縮データを gzdecode で解凍しています。

ファイルから読み込んだgzipデータを解凍する例

<?php
$compressedData = file_get_contents('sample.gz');
$originalData = gzdecode($compressedData);
if ($originalData === false) {
    echo "解凍に失敗しました。";
} else {
    echo $originalData;
}
?>

gzip形式で保存されたファイルを読み込み、gzdecode で解凍しています。解凍に失敗した場合はエラーメッセージを表示しています。

HTTPレスポンスのgzipボディを解凍する例

<?php
$url = "https://example.com/api/data";
$options = [
    "http" => [
        "header" => "Accept-Encoding: gzip"
    ]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$body = gzdecode($response);
if ($body === false) {
    echo "データの解凍に失敗しました。";
} else {
    echo $body;
}
?>

HTTPリクエストでgzip圧縮を要求して、受け取った圧縮データを gzdecode で解凍しています。

関連する関数

  • gzencode: データをgzip形式で圧縮する関数
  • gzcompress: zlib形式で圧縮する関数(gzipとは異なる)
  • gzuncompress: gzcompress で圧縮されたデータを解凍する関数
  • gzopen, gzread, gzwrite: gzip圧縮ファイルの読み書きを行う関数群

まとめ

gzdecode はPHPでgzip圧縮された文字列データを簡単に解凍できる便利な関数です。ファイルやHTTPレスポンスなどでgzip圧縮されたデータを取り扱う場合に幅広く利用でき、関連する圧縮・解凍関数と組み合わせることで柔軟なデータ処理が可能です。データの圧縮形式に注意しつつ、エラー処理も適切に行うことで、実務での活用がスムーズになるでしょう。