PHP程式加速探索之緩衝輸出

來源:互聯網
上載者:User
程式|緩衝 內容緩衝輸出 PEAR cache

  接下來我們開始探索更常用的緩衝技術,這也是本文的重點部份。首先我們使用PEAR中的cache包。PEAR可以將內容緩衝於檔案,資料庫或者記憶體中,我們以檔案為例。

  下面是一個沒有使用緩衝的PHP小程式:

  pear_content_cache1.php
  
<?php
 echo "這是內容。<P>";
 echo "目前時間是" . date('M-d-Y H:i:s A', time()) . "<BR>";
?>
  上面這個程式非常簡單,現在我們為其加上緩衝。

  pear_content_cache2.php

<?php
 require_once 'Cache/Output.php';

 //設定緩衝目錄,必須是可寫的
 $cacheDir = './pear_cache';
 $cache = new Cache_Output('file',array('cache_dir' => $cacheDir));

 //如果nocache變數為空白,使用緩衝中的內容
 //如果想獲得最新的內容,就要賦值給nocache變數
 if (empty($_REQUEST['nocache']))
 {
  // 建立一個獨一的cache標識
  // 請求+Cookie資訊
  $cache_id = $cache->generateID(array('url' => $_REQUEST,'post' =>$_POST,'cookies' => $HTTP_COOKIE_VARS));
 }
 else
 {
  //想獲得最新的內容,ID為空白
  $cache_id = null;
 }

 //看cache ID對應的緩衝內容是否可用
 if ($content = $cache->start($cache_id))
 {
  //緩衝已存在,直接輸出,並結束指令碼
  echo $content;
  exit();
 }

 // 緩衝中不存在該內容,產生新內容並寫入緩衝
 echo "這是內容。<P>";
 echo "目前時間是" . date('M-d-Y H:i:s A', time()) . "<BR>";

 // 把內容寫入緩衝
 echo $cache->end();
?>
  分別重新整理這兩個檔案,你會發現pear_content_cache1.php中的“目前時間是”這一行中的時間是隨著重新整理而變化的,而pear_content_cache2.php中的這一行則不變。這是由於pear_content_cache2.php使用了緩衝,將使用者請求的內容存入靜態檔案中。當使用者再次請求時,它直接從檔案中輸出,而不需要用程式動態產生內容。

  對於pear_content_cache2.php,如果使用者想要讀取最新的資訊,而不是緩衝中成舊的資訊。那麼可以用http://…/pear_content_cache2.php?nocache=1 來訪問,這將禁用緩衝功能。重新整理一下看看,你將發現時間會隨之變化。

  總結一下PEAR內容緩衝類的使用:

  1.包含PEAR包 要注意設對路徑。
 
  2.包含Output.php中的cache類

require_once 'Cache/Output.php';
  3.設定緩衝目錄

$cacheDir = './pear_cache';


  確認這個目錄是可寫的。Cache資料將會寫入這個目錄的子目錄中。

[1] [2] 下一頁  



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.