ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHPチュートリアルをベースにした静的ページ生成の実装方法
t1.php
$template_juBing = fopen ( $template_file, "r" );
// 生成されるファイルポインタ
$newFile_juBing = fopen ( $new_file, "w" );
//方法 1: テンプレートのコンテンツ文字列全体を取得し、置換して新しいファイルに割り当てます
$templateString = fread ($template_juBing, filesize ($template_file));
$showString = replaceTemplateString ($templateString);テンプレート内の文字を置換 String
/*
// メソッド 2 は、ループ内のテンプレート コンテンツ文字列の各行を読み取り、置き換えて、新しいファイルに順番に追加します
while ( ! feof ( $template_juBing ) ) { // feof() 関数は、ファイルの終わりに達したかどうか。ファイルポインタが末尾に達するか、エラーが発生した場合は TRUE を返します。それ以外の場合は、FALSE を返します (ソケット タイムアウトやその他の状況を含む)。
$showString = replaceTemplateString ($templateString);
fwrite ($newFile_juBing, $showString); // 開かれたポインター ファイルにコンテンツを初めて書き込むとき、ファイル ポインターの前のポインター ファイル内の元のコンテンツが置き換えられます。 fwrite 関数がコンテンツを追加すると、追加されたコンテンツの後にファイル ポインターが閉じられます
}
*/
//
fclose ( $newFile_juBing );
fclose ( $template_juBing );
/*
通常、データベースに情報を追加すると、その情報の静的ページが生成されるため、データベーステーブルにパスファイルを保存するフィールドを追加するのが最善です今後の変更、削除を容易にするための、対応する静的ページの名前
テンプレートの置換
一般的に、静的 HTML ページのテンプレートを変更する必要がある場合、通常のアプローチは、生成された HTML ページをすべて削除してから、新しい HTML ページを再作成することです。 (つまり、全て上書きし直して生成します)
場合によっては、作成された静的 HTML ページでもいくつかの動的操作を実行する必要があります。たとえば、ニュース システムの各ニュース記事では、クリック率をカウントする必要があります。
幅と高さが 0 ピクセルの画像コントロールを使用して PHP ページを非表示にし、ページ カウンター関数を実装できます (
リンクディレクトリの静的ページ
通常、静的ページを使用するシステムでは、リンクリストのディレクトリページも訪問者が閲覧できるように静的HTMLファイルとしても生成されることがよくあります
データベース情報が追加または削除されるたびに、したがって、リンク リストに影響を及ぼし、データベース情報が追加または削除されるたびに、リンクされたディレクトリの静的ページを更新する必要があるということになります。
*/
// メソッド 2 はバッファーに基づいて生成します
ob_start (); // バッファーがアクティブ化され、ob_end_clean() がある場合、出力および印刷されるファイル以外のヘッダー情報はすべてページに印刷されませんが、保存されます。内部バッファ。 ob_end_clean() がない場合、情報は内部バッファに保存され、出力されます
これはテスト出力コントロールです
echo "
これはテスト出力コントロールです
" ;
include_once 'cache/newFile.php';
$contents = ob_get_contents (); // これまでにバッファに保存されている情報を取得します。バッファには、PHP の実行コードは保存されません。 = ob_get_clean() ; // これまでにバッファに格納された情報を取得し、クリアバッファをクローズします
// ob_end_flush() // これまでにバッファに格納された情報を出力し、クリアバッファをクローズします
ob_end_clean (); // バッファーの内容のクリアをオフにします
file_put_contents ($new_file, $contents);// コンテンツをファイルに書き込みます
template.html
%body%