PHP 4を使用してWeb転送を高速化する

WBOY
リリース: 2016-06-21 09:07:53
オリジナル
728 人が閲覧しました

ウェブ


/****************************************
** タイトル.... : PHP4 HTTP 圧縮により Web が高速化
** バージョン....: 1.10
** 著者....: catoc
** ファイル名....: gzdoc.php
** 最終変更日..: 25/08/2000
** 要件....: PHP4 >= 4.0.1
** PHP は - で構成されました-with-zlib[=DIR]
** 注意事項.....: Dynamic Content Acceleration は、
** データ送信データをオンザフライで圧縮します
** Sun jin hu (catoc)
** 1998/1999 年以降のほとんどの新しいブラウザーには、「コンテンツ エンコーディング」として知られる HTTP 1.1
** 標準をサポートするための
** が搭載されています。
** 基本的に、ブラウザは
** サーバーに「コンテンツ エンコーディング」を受け入れることができることを示します
** サーバーが対応している場合は、
**データを圧縮して送信します。
** ブラウザはそれを解凍し、
** ページをレンダリングします。
** 使用法....:
** 最初の「** ---------------ファイルの先頭----------
** |** | include('gzdoc.php');
** | print "出力開始!!";
** |?>
** |
** |... ページ ...
** |
** |
** | gzdocout();
** |?>
** -------------ファイルの終わり-----------
******************* ********************/
ob_start();
ob_implicit_flush(0);
関数 GetHeader(){
$headers = getallheaders();
while (list($header, $value) = each($headers)) {
$Message .= "$header: $value
n";
}
$Message を返します。
}
function CheckCanGzip(){
グローバル $HTTP_ACCEPT_ENCODING, $PHP_SELF, $Wget, $REMOTE_ADDR, $S_UserName;
if (connection_timeout() || connection_aborted()){
return 0;
}
if ((strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'gzip')) || $Wget == 'Y'){
if (strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'x-gzip')) {
            $ENCODING = "x-gzip";
$Error_Msg = str_replace('
','',GetHeader());
$Error_Msg .= "時刻: ".date("Y-m-d H:i:s")."n";
$Error_Msg .= "リモートアドレス: ".$REMOTE_ADDR."n";
//mail('your@none.net', "ユーザーはファイル $PHP_SELF に x-gzip 出力を持っています!!!", $Error_Msg);
}else{
$ENCODING = "gzip";
}
$ENCODING を返します。
}else{
0 を返す;
}
}
function GzDocOut(){
global $PHP_SELF, $CatocGz, $REMOTE_ADDR, $S_UserName;
$ENCODING = CheckCanGzip();
if ($ENCODING){
print "nn";
$Contents = ob_get_contents();
ob_end_clean();
if ($CatocGz == 'Y'){
print "長さを圧縮しません: ".strlen($Contents)."
";
print "圧縮長さ: ".strlen(gzcompress($Contents))."
";
終了します。
}else{
header("Content-Encoding: $ENCODING");
}
print Pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00);
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
$Contents を印刷します。
print Pack('V',$Crc);
プリントパック('V',$Size);
終了します。
}else{
ob_end_flush();
$Error_Msg = str_replace('
','',GetHeader());
$Error_Msg .= "時刻: ".date("Y-m-d H:i:s")."n";
$Error_Msg .= "リモートアドレス: ".$REMOTE_ADDR."n";
//mail('your@none.net', "ユーザーはファイル $PHP_SELF で gzip 出力を使用できません!!!", $Error_Msg);
終了します。
}
}
?> 



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート