欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP+.htaccess實(shí)現(xiàn)全站靜態(tài)HTML文件GZIP壓縮傳輸(一)

 更新時(shí)間:2007年02月15日 00:00:00   作者:  
apache的強(qiáng)大終于超出了我的想象,僅僅蜻蜓點(diǎn)水般觸及了一點(diǎn)php皮毛,這點(diǎn)皮毛就在我原有的知識(shí)庫(kù)基礎(chǔ)上爆炸開來,好像PN結(jié)的“雪崩擊穿”一樣,讓我想到了多種技術(shù)結(jié)合無限的應(yīng)用前景。

由于九州未來的服務(wù)器限制流量,那么減少流量負(fù)載也就能減少金錢支出。
如何減少流量,最方便的辦法就是用Gzip壓縮,這個(gè)apache的gzip壓縮是靠一個(gè)叫做zlib的類庫(kù)和gzip的模塊(mod_gzip.c)完成的,這玩意專門有一幫牛人研究,因?yàn)間zip本身就大名鼎鼎的,并且具有高壓縮率開源的壓縮原理,所以我們的開源apache才會(huì)采用這種開源的壓縮技術(shù)。

恩,這個(gè).htaccess也是apache的一個(gè)牛比東西,太強(qiáng)大了,也是根據(jù)你的apache安裝了什么模塊而決定你這個(gè)文件里面可以寫什么東西,比如你安裝了URL重寫模塊(Module mod_rewrite.c)的話你就可以寫一些URL重寫代碼來實(shí)現(xiàn)你的文件重寫。

知識(shí)普及完畢。。。。

進(jìn)入正題。

如何讓自己的全站的真實(shí)的靜態(tài)的html文件,變成gzip傳輸?shù)哪兀?
為了理解方便,我給大家寫了一個(gè)簡(jiǎn)單的php程序。
首先我們建立一個(gè)采用gzip壓縮算法的l.php,在該文件中讀入xxx.html并顯示出來,然后再在.htaccess里面重寫xxx.html到1.php就可以了。簡(jiǎn)單吧。由于我們的服務(wù)器認(rèn)為.htaccess的優(yōu)先級(jí)最高,所以訪問xxx.html的時(shí)候沒有訪問到這個(gè)靜態(tài)文件,反而訪問到了1.php.

下面是我的代碼:(讀入index2.html,然后重寫之)
.htaccess:

復(fù)制代碼 代碼如下:

# 將 RewriteEngine 模式打開 
RewriteEngine On 
RewriteBase / 
RewriteRule index2\.html l.php?fn=index2.html 



1.php

復(fù)制代碼 代碼如下:

<?php 
   $phpver = phpversion(); 

   $useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT; 

   if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) 
   { 
       if ( extension_loaded('zlib') ) 
       { 
           ob_start('ob_gzhandler'); 
       } 
   } 
   else if ( $phpver > '4.0' ) 
   { 
       if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) 
       { 
           if ( extension_loaded('zlib') ) 
           { 
               $do_gzip_compress = TRUE; 
               ob_start(); 
               ob_implicit_flush(0); 

               header('Content-Encoding: gzip'); 
           } 
       } 
   } 
?> 
<?php 
$rfile = addslashes(dirname(dirname(__FILE__))).'/'.'./httpdocs/'.$_REQUEST['fn']; 
echo READ_FILE_CONTENTS($rfile); 
function READ_FILE_CONTENTS($file) 

   if(!function_exists("file_get_contents"))return file_get_contents($file); 
   $ifile = fopen($file,"r"); 
   $contents = false; 
   if($ifile) while (!feof($ifile)) $contents .= fgets($ifile); 
   fclose($ifile); 
   return $contents; 

?> 
<?php 
// Compress buffered output if required and send to browser 
if ( $do_gzip_compress ) 

   // 
   // Borrowed from php.net! 
   // 
   $gzip_contents = ob_get_contents(); 
   ob_end_clean(); 

   $gzip_size = strlen($gzip_contents); 
   $gzip_crc = crc32($gzip_contents); 

   $gzip_contents = gzcompress($gzip_contents, 9); 
   $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); 

   echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; 
   echo $gzip_contents; 
   echo pack('V', $gzip_crc); 
   echo pack('V', $gzip_size); 


exit; 
?> 



實(shí)際上這個(gè)東西能用更好的方法解決,就是用這個(gè)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/xxx.php [L]


但是我還沒研究出來怎么處理這個(gè)%{REQUEST_FILENAME},還望高手賜教。

相關(guān)文章

  • PHP 程序員的調(diào)試技術(shù)小結(jié)

    PHP 程序員的調(diào)試技術(shù)小結(jié)

    大家都知道在開發(fā)過程中,代碼的調(diào)式非常重要,對(duì)于一些常見錯(cuò)誤的調(diào)試技巧有助于提高代碼編寫的效率。
    2009-11-11
  • PHP對(duì)象遞歸引用造成內(nèi)存泄漏分析

    PHP對(duì)象遞歸引用造成內(nèi)存泄漏分析

    這篇文章主要介紹了PHP對(duì)象遞歸引用造成內(nèi)存泄漏分析,是PHP程序設(shè)計(jì)中需要加以重視的一個(gè)bug,并且有助于深入理解PHP運(yùn)行原理,需要的朋友可以參考下
    2014-08-08
  • PHP詳細(xì)徹底學(xué)習(xí)Smarty

    PHP詳細(xì)徹底學(xué)習(xí)Smarty

    Smarty是一個(gè)php模板引擎,它分開了邏輯程序和外在的內(nèi)容,提供了一種易于管理的方法. Smarty要求web服務(wù)器運(yùn)行php4.0.6和以上版本. smarty安裝需要smarty庫(kù)文件??梢匀ス俜骄W(wǎng)站http://smarty.php.net下載。 網(wǎng)上講了很多安裝的教程,但是我都沒有成功,所以直接把整個(gè)目錄名改為smarty直接復(fù)制到了網(wǎng)站所在的目錄下,然后打開http://網(wǎng)站路徑/smarty/demo/index.php,顯示正常,應(yīng)該算是安裝成功了。
    2008-03-03
  • 完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤

    完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤

    下面小編就為大家?guī)硪黄昝澜鉀Qphpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • PHP限制頁面只能在微信自帶瀏覽器訪問的代碼

    PHP限制頁面只能在微信自帶瀏覽器訪問的代碼

    我們都想限制程序只能在微信里面瀏覽,下面是PHP限制頁面只能在微信自帶瀏覽器訪問的代碼,大家可以參考下
    2014-01-01
  • php中curl、fsocket、file_get_content三個(gè)函數(shù)的使用比較

    php中curl、fsocket、file_get_content三個(gè)函數(shù)的使用比較

    最近做一個(gè)網(wǎng)頁小偷程序的時(shí)候才發(fā)現(xiàn)file_get_content已經(jīng)完全不能滿足需求了。我覺得,在讀取遠(yuǎn)程內(nèi)容的時(shí)候,file_get_content除了使用比curl便捷以外,其他都沒有curl好
    2014-05-05
  • 關(guān)于php 高并發(fā)解決的一點(diǎn)思路

    關(guān)于php 高并發(fā)解決的一點(diǎn)思路

    涉及搶購(gòu)、秒殺、抽獎(jiǎng)、搶票等活動(dòng)時(shí),為了避免超賣,那么庫(kù)存數(shù)量是有限的,但是如果同時(shí)下單人數(shù)超過了庫(kù)存數(shù)量,就會(huì)導(dǎo)致商品超賣問題。那么我們?cè)趺磥斫鉀Q這個(gè)問題呢,我的思路如下
    2017-04-04
  • 用php實(shí)現(xiàn)像JSP,ASP里Application那樣的全局變量

    用php實(shí)現(xiàn)像JSP,ASP里Application那樣的全局變量

    用php實(shí)現(xiàn)像JSP,ASP里Application那樣的全局變量...
    2007-01-01
  • phpinfo無法顯示的原因及解決辦法

    phpinfo無法顯示的原因及解決辦法

    今天小編就為大家分享一篇關(guān)于phpinfo無法顯示的原因及解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • PHP數(shù)組去重的更快實(shí)現(xiàn)方式分析

    PHP數(shù)組去重的更快實(shí)現(xiàn)方式分析

    這篇文章主要介紹了PHP數(shù)組去重的更快實(shí)現(xiàn)方式,結(jié)合實(shí)例形式對(duì)比分析了php實(shí)現(xiàn)數(shù)組去重的各種常見操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05

最新評(píng)論