ホームページ  >  記事  >  バックエンド開発  >  優れた PHP ファイル ページ キャッシュ class_PHP チュートリアル

優れた PHP ファイル ページ キャッシュ class_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:12:12878ブラウズ

PHP のキャッシュ分類データベース キャッシュ、ファイル キャッシュ、およびメモリ キャッシュについて詳しく説明します。詳しく知りたい人は参照してください。

ページキャッシュクラス

コードは次のとおりですコピーコード<?php *include ( "cache.php" ); $cache = 新しいキャッシュ(30); echo date("Y-m-d H:i:s"); -> ;キャッシュ();

クラス キャッシュ {
//キャッシュ ディレクトリ
var $cacheRoot = "./cache/";
//キャッシュ更新時間 (秒)、0 はキャッシュなしを意味します
var $cacheLimitTime = 3
//キャッシュ ファイル名
var $ acheFileName = "";
//キャッシュ拡張子名
var $cacheFileExt = "php";
/*
* コンストラクター
* int $cacheLimitTime キャッシュ更新時間
*/
function queue( $cacheLimitTime ) {
if( intval( $cacheLimitTime ) )
/*
* キャッシュファイルを確認 設定された更新時間内かどうか
* Return: 更新時間内であればファイルの内容を返し、それ以外の場合は失敗を返す
*/
functioncacheCheck(){
if( file_exists( $this->cacheFileName ) ) {
$cTime = $this->getFileCreateTime( $this->cacheFileName );
if( $cTime + $this->cacheLimitTime > time() ) {
echo file_get_contents( $this->cacheFileName );
ob_end_flush(); * string $staticFileName 静的ファイル名 (相対パスを含む)
*/
function caching( $staticFileName = "" ){
if( $this ->cacheFileName ) {
$cacheContent = ob_get_contents();
//echo $cacheContent;

If( $staticFileName ) {
saveFile( $staticFileName, $cacheContent )
}

if( $this->cacheLimitTime )
$this->saveFile( $this->cacheFileName, $cacheContent );
}
}

/*
* キャッシュファイルをクリアします
* string $fileName はファイル名を指定します (関数を含む) または all (all)
* 戻り値: クリアが成功した場合は true を返し、それ以外の場合は false を返します
*/
function clearCache( $fileName = "all" ) {
if ( $fileName != "all" ) {
$ filename = $ this-> cacheroot($ filename)。 "。$ this-> cachefileext;$check = is_dir( $file );
true を返す; false を返す
} else{
} ;
}
}
/*
* 現在の動的ファイルに基づいてキャッシュ ファイル名を生成します
*/
関数getCacheFileName() {
return $this->cacheRoot . strtoupper (md5($_SERVER["REQUEST_URI"])).".$this->cacheFileExt
}
/*
* キャッシュ ファイルの作成時間
* string $fileName キャッシュ ファイル名 (相対パスを含む)
* Return: ファイル生成時間 (秒)、ファイルが存在しない場合は 0 を返す
*/
function getFileCreateTime( $fileName ) {
if( ! Trim($fileName) ) ) return 0; return intval(filemtime( $fileName ));
}else return
}

/*
* ファイルを保存します
* string $fileName ファイル名 (相対パスを含む)
* string $text ファイルの内容
* 戻り値: 成功した場合は true を返し、失敗した場合は false を返します
*/
function saveFile($fileName, $text) {
if( ! $fileName || ! $text ) return false;

if( $this-> makeDir( dirname( $fileName ) ) ) {
/*
* ディレクトリを継続的に作成する
* string $dir ディレクトリ文字列
* int $mode 権限番号
* return :正常に作成された場合、またはすべてが作成された場合は true を返しますビルドされている場合、 false を返します
*/
function makeDir( $dir, $mode = "0777" ) {
if( ! $dir ) return 0;
$dir = str_replace( "" "/", $dir ) ; val == ".." || $val == "." トリム( $val ) == "" ) 続行します。if(!@mkdir( $mdir, $mode )){
?&g t; ​​




上記の使用法はページのキャッシュとみなされ、ページにアクセスするたびに、まず対応するキャッシュされたページ ファイルがあるかどうかを確認します。存在しない場合は、データベースに接続してデータを取得し、ページを表示し、同時にキャッシュされたページ ファイルを生成します。これにより、ページ ファイルは次回アクセスされたときに有効になります。 (インターネット上のテンプレート エンジンと一部の一般的なキャッシュ クラスには、通常、この機能があります)

後で、メモリ キャッシュとみなされる Memcache キャッシュについて紹介します

コード

コードは次のとおりです

code

$memcache = new Memcache;$version = $memcache-> getVersion();echo "サーバーのバージョン: ".$version."n";$tmp_object = new stdClass;
< ?php$memcache->connect('localhost', 11211) or die ("接続できませんでした");
$tmp_object->str_attr = 'test';

$tmp_object->int_attr = 123;
$ memcache->set('key ', $tmp_object, false, 10) or die ("サーバーでのデータの保存に失敗しました");
echo "データをキャッシュに保存します (データは 10 秒で期限切れになります)n";
$get_result = $memcache-> ;get('key');
echo "キャッシュからのデータ:n";
var_dump($get_result);
?>




Memcached は高性能であり、分散メモリ オブジェクト キャッシング システム。データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用されます。

http://www.bkjia.com/PHPjc/444585.htmlwww.bkjia.com
本当

http://www.bkjia.com/PHPjc/444585.html技術記事 PHP のキャッシュ分類データベース キャッシュ、ファイル キャッシュ、およびメモリ キャッシュについて詳しく説明します。詳しく知りたい人は参照してください。 ページ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。