/****************************************
** 標題......: php4 HTTP ComPRession 加速 Web
** 版本......: 1.10
** 作者........: catoc
** 檔名......: gzdoc.php
** 最後更改..: 25/08/2000
** 要求...: PHP4 >= 4.0.1
** PHP 配置為 --with-zlib[=DIR]
** 注意......: 動態內容加速壓縮
** 動態傳輸資料
** 代碼:sun jin hu (catoc)
** 自 1998/1999 年以來大多數較新的瀏覽器都有
** 已配備支援 HTTP 1.1
** 標準稱為「內容編碼」。
** 本質上是瀏覽器向
指示
** 伺服器可以接受「內容編碼」
** 如果伺服器有能力,它就會
** 壓縮資料並傳輸。
** 瀏覽器解壓縮然後渲染
** 這一頁。
** 用途........:
** 第一個 '' 開頭之前沒有空格標籤。
** ------------文件開始----------
** |
** |包括('gzdoc.php');
** | print "開始輸出!!";
** |?>
** |
** |...頁...
** |
** |
** | gzdocout();
** |?>
** -------------文件結束------------
*******************************************/
ob_start();
ob_implicit_flush(0);
函數 GetHeader(){
$headers = getallheaders();
while (列表($header, $value) = every($headers)) {
$Message .= "$header: $value
n";
}
返回$ 訊息;
}
函數 CheckCanGzip(){
全域 $HTTP_ACCEPT_ENCODING、$PHP_SELF、$Wget、$REMOTE_ADDR、$S_UserName;
if (connection_timeout() || connection_aborted()){
返回 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);
}其他{
$ENCODING = "gzip";
}
返回$ENCODING;
}其他{
返回 0;
}
}
函數 GzDocOut(){
全域 $PHP_SELF、$CatocGz、$REMOTE_ADDR、$S_UserName;
$ENCODING = CheckCanGzip();
如果($ENCODING){
print "nn";
$內容= ob_get_contents();
ob_end_clean();
if ($CatocGz == 'Y'){
print "不壓縮長度:".strlen($Contents)."
";
print "壓縮長度:".strlen(gzcompress($Contents))."
";
出口;
}其他{
header("內容編碼:$ENCODING");
}
印刷包('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00);
$大小= strlen($內容);
$Crc = crc32($Contents);
$內容= gzcompress($內容);
$內容 = substr($內容, 0, strlen($內容) - 4);
列印$內容;
印刷包('V',$Crc);
列印包('V',$Size);
出口;
}其他{
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);
出口;
}
}
?>
以上就介紹了使用php4加速網路傳輸,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。