ホームページ  >  記事  >  バックエンド開発  >  PHP_PHPチュートリアルをベースにした静的ページ生成の実装方法

PHP_PHPチュートリアルをベースにした静的ページ生成の実装方法

WBOY
WBOYオリジナル
2016-07-21 15:11:16889ブラウズ

t1.php

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

//方法 1 はテンプレートに基づいて静的ページを生成します
//replaceTemplateString 関数を使用して、テンプレート内の指定された文字列
function replaceTemplateString($ templateString) {
$title = ", $title, $templateString );
$showString = str_replace ( "%body%", $body, $showString );
// Return置き換えられた結果
return $showString;
}


$template_file = "template.html";
$new_file = "new.html";

// テンプレートファイルポインタ

$template_juBing = fopen ( $template_file, "r" );
// 生成されるファイルポインタ
$newFile_juBing = fopen ( $new_file, "w" );

//方法 1: テンプレートのコンテンツ文字列全体を取得し、置換して新しいファイルに割り当てます
$templateString = fread ($template_juBing, filesize ($template_file));
$showString = replaceTemplateString ($templateString);テンプレート内の文字を置換 String

fwrite ( $newFile_juBing, $showString ) // 置換された内容を生成された HTML ファイルに書き込みます


/*
// メソッド 2 は、ループ内のテンプレート コンテンツ文字列の各行を読み取り、置き換えて、新しいファイルに順番に追加します
while ( ! feof ( $template_juBing ) ) { // feof() 関数は、ファイルの終わりに達したかどうか。ファイルポインタが末尾に達するか、エラーが発生した場合は TRUE を返します。それ以外の場合は、FALSE を返します (ソケット タイムアウトやその他の状況を含む)。

$templateString = fgets ( $template_juBing ); // fgets(file,length) は、ファイル ポインターから行を読み取り、改行を含む最大 length - 1 バイトの長さの文字列を返します。長さが指定されていない場合、デフォルトは 1K、つまり 1024 バイトになります。

$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


コードをコピーします

コードは次のとおりです:





%title%

%title%




%body%



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326972.html技術記事 t1.php 次のようにコードをコピーします。 ?php // メソッド 1 は、テンプレートに基づいて静的ページを生成します。 // replaceTemplateString 関数は、テンプレート内の指定された文字列を置換するために使用されます。 replaceTemplateString(...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。