ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルで HTML 静的ページを生成する 2 つの方法

php_PHP チュートリアルで HTML 静的ページを生成する 2 つの方法

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

私がこれまでに見た記事では、コードを使ってスペースを埋めたり、専門家が専門家とコミュニケーションをとるために使用する言語を使用して初心者を怖がらせたりしていました。したがって、この記事では全体的な考え方を詳しく説明しようとします。

2 つの方法を簡単に説明すると、次のとおりです。

まず、PHP の出力制御関数 (Output Control) を使用して、静的なページ文字列を取得し、それを新しいファイルに書き込みます。

使用手順:

1. インスタンスを作成します

コードは次のとおりです コードをコピーします

$cache = new Cache() 2. キャッシュ時間とキャッシュ ディレクトリを設定します

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

最初のパラメータはキャッシュ秒数、2 番目のパラメータはキャッシュ パスで、必要に応じて設定します。
デフォルトでは、キャッシュ時間は3600秒で、キャッシュディレクトリはcache/

3です。 キャッシュの読み取り

コードは次のとおりです コードをコピー

$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 "生成";
}


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444662.html技術記事私がこれまでに見た記事では、コードを使用してスペースを埋めるか、専門家が専門家とのコミュニケーションに使用する言語を使用して、初心者を怖がらせていました。したがって、この記事では全体的な考え方を詳しく説明しようとします。 2種類…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。