アクセス数が多いとデータベースに大きな負荷がかかるため、頻繁に変更されないコンテンツに対して適切な PHP データ キャッシュを実行する必要があると思います。単純な PHP の「ファイル キャッシュ」クラスを作成しました。誰にとっても役立ちます。
考え方は次のとおりです:
一般的な変数の場合は、変数を PHP 言語の形式に変更してファイルに書き込むだけで、キャッシュをロードするのと同じになります。
配列型の変数の場合は、配列を変換します。 PHP 言語の配列の文字列をファイルに書き込みます。キャッシュのロードにかかる時間は、キャッシュ ファイルの作成時刻を取得し、現在時刻と比較することで制御します。更新時刻が来たら、キャッシュを直接読み取り、データベースにクエリを実行してデータを返し、キャッシュを更新します。 (まだ実装されていません)
以下は私の php-kcache クラス (php_kcache_class.php) です:
注: キャッシュ文字列の場合は、エスケープ文字に '' をもう 1 つ追加してください。つまり、「n」は次のようになります。 "\n" として書かれます。
コードをコピーします コードは次のとおりです:
/*
//php-kcache class v_0.1
//著者: kangzj
//メール: kangzj@mail.bnu.edu.cn
//ブログ: http://kangzj.net.ru
/ /作者は、このプログラムにバグがないことを保証せず、このプログラムの使用によって生じた問題については一切の責任を負いません
//。
*/
class php_kcache {
//相対ディレクトリまたは絶対ディレクトリ、最後に「/」を追加しないでください
var $cache_dir = './cache'
function set_cache ($name . $value = $value;
$str = "$$name = '$value';";
}else{
$str = "$$name = " . $this->arrayeval($value ) . ';
} $ $ end = "n? & Gt;"; $cache_file = $this-> ; キャッシュエクステント;
if ($ fp = @fopen ($ キャッシュ_ファイル, 'wb'))
fclose ($ fp); {O Echo $ キャッシュ_ファイル; , $level = 0) {(if (! IS_ARAY ($ 配列)) {
Return "'". $ Array. "'";
}
$ space = ''; $level; $i++) {
$space .= "t ";
foreach( $array as $key => $val) {
$key = is_string($key) ? ''.addcslashes($key, ''\').''' $key; ( $val) && (!preg_match("/^-?[1-9]d*$/", $val) || strlen($val) > 12) '''.addcslashes($val, ' ' \').''' : $val; else {
$evaluate .= "$comma$key =>
} $evaluate .= "n$space)"
return $evaluate
}
最も単純な呼び出しメソッド:
コードをコピーします
コードは次のとおりです:
include './php_kcache_class.php';
$pc = new php_kcache;
$pc->set_cache('a', addslashes) ($a));