PHPスクリプトで出力データを圧縮する方法を調べました。備忘としてメモ書きしています。
※目次をクリックすると目次の下部にコンテンツが表示されます。
出力バッファをgzip圧縮
〇構文
bool ob_start(callable $output_callback)
・出力のバッファリングを有効にする。
・output_callbackは、出力バッファの内容をパラメータとして受け取り、処理した結果をブラウザに送信する。
①ob_gzhandlerを使用
・出力バッファをgzip圧縮するためのob_startコールバック関数。
・実際に圧縮されたデータを送信する前にブラウザがサポートするcontent encodingの種類(“gzip”、”deflate” またはなし)を調べ、それに基づいて出力を返す。
例)
<?php
ob_start(“ob_gzhandler”);
?>
<html>
<body>
・・・・
</body>
</html>
②コールバックを自分で定義
例)
bool ob_start(callable $output_callback)
・出力のバッファリングを有効にする。
・output_callbackは、出力バッファの内容をパラメータとして受け取り、処理した結果をブラウザに送信する。
①ob_gzhandlerを使用
・出力バッファをgzip圧縮するためのob_startコールバック関数。
・実際に圧縮されたデータを送信する前にブラウザがサポートするcontent encodingの種類(“gzip”、”deflate” またはなし)を調べ、それに基づいて出力を返す。
例)
<?php
ob_start(“ob_gzhandler”);
?>
<html>
<body>
・・・・
</body>
</html>
②コールバックを自分で定義
例)
<?php ob_start("customhandler"); function customhandler($buffer) { $buffer = str_replace( array ("\r", " ", "\n", "\t"),""); return $buffer; } ?> <html> <body> ・・・・ </body> </html>
zlibを使って圧縮
・このモジュールによりgzip(.gz)で圧縮されたファイルを読み書きすることが可能となる。
・php.iniまたはApacheの設定で下記オプションを設定。
①output_compression boolean/integer
・透過的なページ圧縮を行うかどうかを設定。
・このオプションが”On”に設定された場合、ブラウザが”Accept-Encoding: gzip”または”deflate”ヘッダを送信する場合に、ページは圧縮される
・”Content-Encoding: gzip”(および “deflate”)と”Vary: Accept-Encoding”ヘッダが出力に追加される。
・実行時、何らかのデータを送出する前にのみ設定することが可能。
・”On”/”Off”のかわりに整数値をとることができ、出力のバッファサイズ(デフォルトは4KB)を設定することができる。
②output_compression_level integer
・透過的出力圧縮で使用される圧縮レベル。
・0(圧縮しない)から9(最高レベルの圧縮をする)までの値を指定。
・デフォルト値の-1は、どのレベルを使用するかをサーバーで決定させる。
・php.iniまたはApacheの設定で下記オプションを設定。
①output_compression boolean/integer
・透過的なページ圧縮を行うかどうかを設定。
・このオプションが”On”に設定された場合、ブラウザが”Accept-Encoding: gzip”または”deflate”ヘッダを送信する場合に、ページは圧縮される
・”Content-Encoding: gzip”(および “deflate”)と”Vary: Accept-Encoding”ヘッダが出力に追加される。
・実行時、何らかのデータを送出する前にのみ設定することが可能。
・”On”/”Off”のかわりに整数値をとることができ、出力のバッファサイズ(デフォルトは4KB)を設定することができる。
②output_compression_level integer
・透過的出力圧縮で使用される圧縮レベル。
・0(圧縮しない)から9(最高レベルの圧縮をする)までの値を指定。
・デフォルト値の-1は、どのレベルを使用するかをサーバーで決定させる。
-
インストール、設定
- PHPの設定、更新時の参考情報メモ
- PHPのインストール
- CentOS6でPHP5.3からPHP7.1へアップデート
- CentOS6.10でPHP7.1からPHP7.2へアップデート
- CentOS Stream9でPHP7.4をインストールする手順
- CentOSでPHPのマルチバイト文字列(MBstring)関数を使えるようにする
- PHPでタイムスタンプをログファイルに記録
- PHPのバージョンが表示されないようにする
- セキュリティを考慮した/etc/php.iniの設定
- CentOS6でAPC(Alternative PHP Cache)をインストール、チューニング
- PHPスクリプトで出力データを圧縮する方法
- PHPの変数、スコープ
- PHPの型の概要、種類
- PHPのクラス操作の概要
- PHPの配列操作の概要
- PHPで文字列のマッチング
- require,require_once,include,include_onceの違い
- CentOS環境のPHPでPDOを使ってMySQLからJSONでデータ取得
- PHPでHTMLテーブルをJSONに変換
- PHPでディレクトリ内のファイル一覧をJSONで出力
- PDOを使ってテーブルに保存
- PDOでSQLインジェクション対策
- phpとpChartを使ってWebサイトにグラフ表示
性能
プログラミングの基本
PDO、データベース、JSON
その他