$value = $cache-> get('data_key ');4. 書き込みキャッシュ
$value = $cache->put('data_key', 'data_value'); 完全な例:
$cache = new Cache();
//Read fromキャッシュ キー値のデータを取得 $key $values = $cache->get($key);
//キャッシュデータがない場合 if ($values == false) { //ここにコードを挿入... //キー値のデータを書き込む $key $cache->put($key, $values); } else { //ここにコードを挿入... } Cache.class.php
< ?php class Cache { private $cache_path;// キャッシュのパス private $cache_expire;// キャッシュの有効期限が切れる秒数 // キャッシュ コンストラクター、オプションの有効期限とキャッシュpath public function Cache($exp_time= 3600,$path="cache/"){ $this->cache_expire=$exp_time; $this->cache_path=$path; } // を返しますキャッシュのファイル名 プライベート関数 fileName( $key){ return $this->cache_path.md5($key); }
// 指定されたデータで新しいキャッシュ ファイルを作成します。 $key== キャッシュ ファイルの名前キャッシュ、データ 保存する情報/値 public function put($key, $data){ $values = Serialize($data); $filename = $this->fileName($key); $file = fopen($filename, 'w') ; if ($file){//ファイルを作成できる fwrite($file, $values); fclose($file); else return false; }
//指定されたキーのキャッシュを返します public function get($key){ $filename = $this->fileName($key); if (!file_exists($filename) || !is_readable( $filename)){//キャッシュを読み取れません return false; } if ( time() < (filemtime($filename) + $this->cache_expire) ) {//キーのキャッシュがありません期限切れ $file = fopen($filename, " r "); // データファイルを読み取る IF ($ File) {// ファイルを開くことができます $ Data = FREAD ($ File, Filesize ($ FILENAME) ); Fclose ($ file); $data);//値を返します } それ以外の場合は false を返します。
2 番目に、テンプレートを使用して生成します
テンプレートとは何ですか? Dreamwerver で「テンプレートとして保存」を使用したことがある場合は、テンプレートがスタイルを統一するために使用されることをご存知でしょう。もちろん、ページの特定の部分のみを変更できます。この「特定の部分」はユーザーが決定します。これが、この記事で説明されているテンプレートの意味です。 (また、PHP テンプレート技術には、phplib、smarty なども含まれますが、これはこの記事の内容ではありません)
テンプレートの概念とこの記事を組み合わせると、より具体的には次のようになります: まずアーティストがページを作成し、次にこのページをテンプレートとして使用します(このテンプレートでは EditRegion3 などのコードを使用する必要はありません。このコードは、Dreamwerver が独自のデザインを容易にするために作成したロゴです。その場所には HTML と区別できる文字を使用します)。このテンプレートでは、「{title}」、「[title]」などを変更する必要があります。静的ページを生成する場合、データをこれらの文字列に置き換えるだけで済みます。これがテンプレートの内容です。
手順:
1. 新しい php ページと html ページ [テンプレート ページ] を作成します。 注: データがデータベースから呼び出される場合は、データを配列の形式で保存し、ループ; 2. PHP ページで、HTML ページを開きます -> HTML ページのコンテンツを読み取ります -> パラメータを置換します -> 新しい HTML ページを作成します -> 置換されたコンテンツを新しいファイルに書き込みます->新しいファイルを閉じる- >正常に生成されました;
コードは次のとおりです | コードをコピーします |
$open = fopen("template.htm","r"); //テンプレートファイルを開きます $content = fread($open, filesize("template.htm")); //テンプレートファイルの内容を読み込みます //print_r($content); $content = str_replace("{title}" ,"テストタイトル",$content);//置換 $content = str_replace("{contents}","テストコンテンツ",$content);
$newtemp = fopen("1.htm","w" );//生成、書き込みモードで新しいファイルを開きます 既存の (新しい) ページ fwrite($newtemp,$content);// 置き換えたばかりのコンテンツを新しいファイルに書き込みます fclose($newtemp); echo "generate ";
|
phpバッチ生成HTMLテスト:
コードは次のとおりです | コードをコピー |
//データベースから転送されたデータは2次元配列に格納されていると仮定します$arr $arr = array(array("ニュース タイトル 1","ニュース コンテンツ 1"),array("ニュース タイトル 2","ニュース コンテンツ 2"));
foreach($arr as $key=>) ;$value){ $title = $value[0]; $contents = $value[1]; //echo $title.''.$contents.''; $path = $key.'. html'; $open = fopen("template.htm","r" ); //テンプレートファイルを開きます $handle = fread($open,filesize("template.htm")); //内容を読み込みますテンプレートファイルの
$content = str_replace("{title}",$title,$ handle);//置換 $content = str_replace("{contents}",$contents,$handle);
$newtemp = fopen($path,"w");//存在しないページを書き込みモード (新規) で開きます fwrite($newtemp,$content);// 置き換えたばかりのコンテンツを新しいファイルに書き込みます fclose( $newtemp); echo "生成"; }
|
|