php Cache 類實例詳解

本文主要和你們分享php Cache 類實例詳解,但願能幫助你們更好理解cache的使用方法。更多的PHP學習點擊這裏,天天都有直播課能夠免費學習
一、實例化php

`$cache`  `=` `new`  `Cache();`

二、設置緩存時間和緩存目錄緩存

`$cache`  `=` `new`  `Cache(60,` `'/any_other_path/'``);`

第一個參數是緩存秒數,第二個參數是緩存路徑,根據須要配置。
默認狀況下,緩存時間是 3600 秒,緩存目錄是 cache/
三、讀取緩存學習

`$value`  `=` `$cache``->get(``'data_key'``);`

四、寫入緩存this

`$value`  `=` `$cache``->put(``'data_key'``,` `'data_value'``);`

完整實例:code

`$cache` `=` `new` `Cache();`

`//從緩存從讀取鍵值 $key 的數據`

`$values` `=` `$cache``->get(``$key``);`

`//若是沒有緩存數據`

`if` `(``$values` `== false) {`

`//insert code here...`

`//寫入鍵值 $key 的數據`

`$cache``->put(``$key``,` `$values``);`

`}` `else` `{`

`//insert code here...`

`}`

`<?php`

`class` `Cache {`

`private` `$cache_path``;``//path for the cache`

`private` `$cache_expire``;``//seconds that the cache expires`

`//cache constructor, optional expiring time and cache path`

`public` `function` `Cache(``$exp_time``=3600,``$path``=``"cache/"``){`

`$this``->cache_expire=``$exp_time``;`

`$this``->cache_path=``$path``;`

`}`

`//returns the filename for the cache`

`private` `function` `fileName(``$key``){`

`return` `$this``->cache_path.md5(``$key``);`

`}`

`//creates new cache files with the given data, $key== name of the cache, data the info/values to store`

`public` `function` `put(``$key``,` `$data``){`

`$values` `= serialize(``$data``);`

`$filename` `=` `$this``->fileName(``$key``);`

`$file` `=` `fopen``(``$filename``,` `'w'``);`

`if` `(``$file``){``//able to create the file`

`fwrite(``$file``,` `$values``);`

`fclose(``$file``);`

`}`

`else` `return` `false;`

`}`

`//returns cache for the given key`

`public` `function` `get(``$key``){`

`$filename` `=` `$this``->fileName(``$key``);`

`if` `(!``file_exists``(``$filename``) || !``is_readable``(``$filename``)){``//can't read the cache`

`return` `false;`

`}`

`if` `( time() < (``filemtime``(``$filename``) +` `$this``->cache_expire) ) {``//cache for the key not expired`

`$file` `=` `fopen``(``$filename``,` `"r"``);``// read data file`

`if` `(``$file``){``//able to open the file`

`$data` `=` `fread``(``$file``,` `filesize``(``$filename``));`

`fclose(``$file``);`

`return` `unserialize(``$data``);``//return the values`

`}`

`else` `return` `false;`

`}`

`else` `return` `false;``//was expired you need to create new`

`}`

`}`

`?>`
相關文章
相關標籤/搜索