ホームページ  >  記事  >  バックエンド開発  >  php4 を使用して Web 送信を高速化する_PHP チュートリアル

php4 を使用して Web 送信を高速化する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:01:40810ブラウズ


/****************************************
** タイトル.... : PHP4 HTTP 圧縮により Web が高速化
** バージョン....: 1.10
** 著者....: catoc
** ファイル名....: gzdoc.php
** 最終変更日..: 2000/08/25
** 要件....: PHP4 >= 4.0.1
** PHP は - で構成されました-with-zlib[=DIR]
** 注意事項....................: ダイナミック コンテンツ アクセラレーションは、
** データ送信データをオンザフライで圧縮します
** コード by 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 を返す;
}
関数 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{
return 0;
}
}
関数 GzDocOut(){
グローバル $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 を印刷;
印刷パック('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);
終了;
}
}
?>




www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316766.html技術記事 ? /*************************************** ** タイトル....... ..: PHP4 HTTP 圧縮により Web が高速化 ** バージョン....: 1.10 ** 著者....: catoc catoc@163.net ** ファイル名.... .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。