詳細講解PHP中緩存技術的應用(4)_PHP教程
推薦:利用PHP V5開發多任務應用程序許多 PHP 開發人員認為,由于標準的 PHP 缺少線程功能,因此實際 PHP 應用程序不可能執行多任務處理。例如,如果應用程序需要其他 Web 站點的信息,那么在遠程檢索完成之前它都必須停止。這是錯
寫入字節流,serialize寫入其他格式
,順便一提的是如果我們要把一個數組,(可以從MySQL數據庫里面select查詢除了的結果)用serialize函數寫入,用unserialize讀取到原來的類型.
functiondisplay_cache($cacheFile){ if(!file_exists($cacheFile)){ $this->warn('無法讀取緩存文件.');//trigger_error returnfalse; } echo'讀取緩存文件:'.$cacheFile; //returnunserialize(file_get_contents($cacheFile)); $fso=fopen($cacheFile,'r'); $data=fread($fso,filesize($cacheFile)); fclose($fso); return$data; } |
這是由文件名稱讀取緩存的方法,直接打開文件,讀取全部,如果文件不存在的或者無法讀取的話返回false,當然,你感到不人性的話,可以重新生成緩存.
functionreadData($cacheFile='default_cache.txt'){ $cacheFile=$this->cache_dir."/".$cacheFile; if(file_exists($cacheFile)&&filemtime($cacheFile)>(time()-$this->expireTime)){ $data=$this->display_cache($cacheFile); }else{ $data="fromherewocangetitfrommysqldatabase,updatetimeis<b>".date('ldSofFYh:i:sA')."</b>,過期時間是:".date('ldSofFYh:i:sA',time() $this->expireTime)."----------"; $this->cache_page($cacheFile,$data); } return$data; } |
這個函數是我們調用的方法,可以寫成接口的方法,由傳入參數判斷文件存在不,文件最后修改時間 expireTime的時間是不是過了當前時間(大于的話說明沒有過期),如果文件不存在或者已經過期,重新加載原始數據,這里,為了簡單期間,我們是直接源是字符串,您可以把cache類繼承某類,取到數據庫的數據.(注釋2)
四:補充說明,結語
注釋一:這個緩存的時間您可以自己調,可以根據時間情況讀取數組,xml,緩存等,請按照您的方便,值得一提的是緩存的時間(也就是緩存的key)也用緩存控制,.這在cms系統中被廣泛使用,他們把要更新的key放在緩存中,非常容易控制全戰.
注釋二:php5開始支持類繼承,這是讓人興奮的,把網站全局休息寫在一個配置的類里面,再寫與數據層交互的類(如與MySQL交互的類),我們的這個cache類繼承數據交互的類,可以非常容易的讀取數據庫,這是外話,此處不再展開,有時間和大家詳談.
特別說明,這個類文件針對的php5以上版本,其他版本的請不要使用類.
分享:詳細解析 PHP 向 MySQL 發送數據過程下面的一段代碼是一個很簡單的 HTML 表單: <html> <body> <formaction=submitform.php3method=GET> 姓:<inputtype=textname=fir
- 相關鏈接:
- 教程說明:
PHP教程-詳細講解PHP中緩存技術的應用(4)。