1. PHP スクリプトと動的ページ。
PHP スクリプトは、埋め込みなどの方法で HTML ファイルと混合したり、クラスや関数のカプセル化などの形式のテンプレートの形式でユーザーのリクエストを処理したりできる、サーバーサイドのスクリプト プログラムです。いずれにせよ、基本はこれです。クライアントが特定のページをリクエストします -----> WEB サーバーは、指定された対応するスクリプトを処理に導入します -----> スクリプトはサーバーにロードされます ----->サーバーによってスクリプトはブラウザによって解析され、HTML 言語形式が形成されます----> 解析された HTML ステートメントはパッケージの形式でブラウザに返されます。このことから、ページがブラウザに送信された後は PHP が存在せず、HTML ステートメントに変換および解析されたことがわかります。実際、クライアントのリクエストは動的ファイルであり、PHP はそれを対応するページに解析してブラウザに送り返します。このページの処理方法は「動的ページ」と呼ばれます。
2 番目の静的ページ。
静的ページとは、サーバー側に実際に存在し、HTML と JS、CSS、その他のクライアント側スクリプトのみを含むページを指します。扱い方としては。クライアントは特定のページをリクエストします---> WEB サーバーは特定のページを確認してロードします---> WEB サーバーはそのページをパッケージの形式でブラウザに返します。このプロセスから、動的ページを比較して確認できます。動的ページは WEB サーバーの PHP パーサーで解析する必要があり、通常、HTML 言語情報パッケージを形成する前にデータベースに接続してデータベース アクセス操作を実行する必要がありますが、静的ページは解析したり接続したりする必要はありません。データベースに直接送信できるため、サーバーの負荷が大幅に軽減され、サーバーの負荷容量が向上し、ページを開く速度と Web サイト全体を開く速度が大幅に向上します。ただし、その欠点は、リクエストを動的に処理できないことと、ファイルが実際にサーバー上に存在する必要があることです。
3 つ、テンプレートとテンプレート分析。
テンプレートにはコンテンツ HTML ファイルが入力されていません。例:
temp.html
コード:
コードをコピーします コードは次のとおりです:
{ title }
これは { file } ファイルのテンプレットです
PHP 処理:
templetest.php コード:
$title = "TwoMax International Test Template"; Inter test テンプルト ,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$コンテンツ .= str_replace ("{ ファイル }",$file,$content);
$content .= str_replace ("{ タイトル }",$title,$content);テンプレート解析処理、つまり、PHP スクリプトの解析および処理後に得られた結果 (コンテンツ) がテンプレート処理プロセスに埋め込まれます。通常はテンプレート クラスの助けを借ります。現在、より一般的なテンプレート解析クラスには、phplib、smarty、fastsmarty などが含まれます。テンプレート解析処理の原則は、通常は置換です。また、判定やループなどの処理をテンプレートファイルに入れて解析クラスで処理することに慣れているプログラマもいますが、その典型的な応用が単純にループ処理であるブロック概念です。 PHP スクリプトはループの数、ループの方法などを指定し、テンプレート解析クラスがこれらの操作を実装します。
それでは、静的ページと動的ページの長所と短所を比較した後、PHP を使用して静的ファイルを生成する方法について説明します。
PHP による静的ページの生成とは、PHP の動的解析と HTML ページの出力を指すのではなく、PHP を使用して HTML ページを作成することを指します。同時に、HTML は書き込み不可能な性質があるため、作成した HTML が変更された場合は、削除して再生成する必要があります。 (もちろん、通常のルールを使用して変更することもできますが、個人的には、削除して再生成するよりも高速であり、利益に見合っていないと思います。)
本題に戻ります。 PHP のファイル操作関数を使用したことのある PHP ファンは、PHP にファイルを開くファイル操作関数 fopen があることを知っています。ファイルが存在しない場合は、作成してみてください。これは、PHP を使用して HTML ファイルを作成できる理論的基礎です。 HTML ファイルの保存に使用されるフォルダーに書き込み権限 (つまり、権限定義 0777) がある限り、ファイルを作成できます。 (UNIX システムの場合、Win システムは考慮する必要はありません。) 上記の例を例として、最後の文を変更して、test ディレクトリに test.html という名前の静的ファイルを生成するように指定すると、次のようになります。
コード:
コードをコピー
コードは次のとおりです:
$title = "TwoMax International テスト テンプレート";
$file = "TwoMax Inter テスト テンプレート、
author: Matrix@Two_Max";
$fp = fopen ("temp.html","r " );
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content); title }",$title,$content);
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); // ファイル ポインタを開く ,ファイルを作成します
/*
ファイルが作成され、書き込み可能かどうかを確認します
*/
if (!is_writable ($filename)){
die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してください。もう一度試してください Try! ");
}
if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
die ("Generate file".$filename."Failed!");
}
fclose ( $handle); //ポインタを閉じる
die ("Create file".$filename."Success!");
実際のアプリケーションでの一般的な問題の解決策のリファレンス:
First , 記事リストの問題 : データベースにフィールドを作成し、ファイルが生成されるたびに、自動的に生成されたファイル名がデータベースに保存されます。静的ファイルが保存されているフォルダー。 PHP 操作を使用して記事リストを処理し、文字列として保存し、ページの生成時にこの文字列を置き換えます。たとえば、ページ上の記事リストが配置されるテーブルと PHP 処理ファイルにマーク {articletable} を追加します。
コード:
コードをコピーします コードは次のとおりです:
$title = "TOP Mai International テスト テンプレート";
$file = "TwoMax Inter テスト テンプレート、
作成者: Matrix@Two_Max";
$fp = fopen ("temp.html","r") ;
$content = fread ($fp, filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content); }",$title,$content);
// リスト生成開始
$list = '';
$sql = "記事から id,title,filename を選択";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array ($query)) {
$list .= ''.$result['title'].''
}
$content .= str_replace ("{articletable }",$list,$content) );
//リストの生成終了
/ / echo $content;
$handle = fopen ($filename,"w");ファイル
/*
ファイルが作成され、使用可能かどうかを確認します。 Write
*/
if (!is_writable ($filename)){
die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してください。もう一度試してください!");
}
if (!fwrite ($ handle,$content)){ //ファイルに情報を書き込みます
die ("Generate file".$filename."Failed!");
}
fclose ($handle); //ポインタを閉じます
die ("Create file ".$filename."Success! ");
2 つ目は、ページングの問題です。
ページネーションを指定すると、1ページあたり20記事になります。データベース クエリによると、特定のサブチャネル リストには 45 個の記事があります。まず、クエリを通じて次のパラメータを取得します。1、ページの総数、2、ページごとの記事数。 2 番目のステップ、for ($i = 0; $i
コード:
Copy code
コードは次のとおりです: $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html"); = '20'; $sql = "チャネル='$channelid' の記事から ID を選択します";
$num = mysql_num_rows ($query); num / $onepage) ; for ($i = 0;$i<$allpages; $i++){
if ($i == 0){
$indexpath = "index.html"; else {
$ Indexpath = "index_" .$i."html";
}
$start = $i * $onepage;
$sql_for_page = "チャネル='$の記事から名前、ファイル名、タイトルを選択チャンネル ID' 制限 $start ,$onepage";
$query_for_page = mysql_query ($sql_for_page);
while ($result = $query_for_page){
$list .= ''.$title.'';
}
$content = str_replace ("{articletable }",$list,$content);
if (is_file ($indexpath)){
@unlink ($indexpath); // ファイルが既に存在する場合は削除します
}
$handle = fopen ($indexpath,"w "); //ファイルポインタを開き、ファイルを作成します
/*
ファイルが作成され、書き込み可能かどうかを確認します
*/
if (!is_writable ($indexpath)){
echo "File: 「.$indexpath.」は書き込み可能ではありません。プロパティを確認して再試行してください。 "; //echo に変更します
}
if (!fwrite ($handle,$content)){ //ファイルへの情報の書き込み
echo "ファイルの生成".$indexpath に失敗しました! "; //エコーに変更
}
fclose ($handle); //ポインタを閉じる
}
fclose ($fp);
die ("ページングファイルの生成が完了しました。生成が不完全な場合はファイルを確認してください許可システムを再試行してください。");
?>
一般的なアイデアは次のとおりです。その他のデータ生成、データの入出力チェック、ページ分割コンテンツのポインティングなどを必要に応じてページに追加できます。
実際の記事システムの処理プロセスでは、考慮すべき点がまだ多く、動的ページとの違いには注意が必要です。しかし、一般的な考え方はこれであり、他の側面も類推して導き出すことができます。
PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成します
テンプレートにより Web サイトの構造を改善できます。この記事では、PHP 4 の新機能とテンプレート クラスを使用して、多数の静的 HTML ページで構成される Web サイトのページ レイアウトをテンプレートを巧みに使用して制御する方法について説明します。
概要:
======================================
機能とレイアウトを分離する
重複を避けるページ要素の分割
静的ウェブサイト用のテンプレートフレームワーク
=============================================
分割機能とレイアウト まず、テンプレートを適用する主な 2 つの目的を見てみましょう:
機能 (PHP) とレイアウト (HTML) を分離する
ページ要素の重複を避ける
最初の目的は最も話題になっている目的であり、それが想定されています状況: プログラマーのグループが PHP スクリプトを作成してページのコンテンツを生成し、デザイナーの別のチームが HTML とグラフィックをデザインしてページの最終的な外観を制御します。機能とレイアウトを分離するという基本的な考え方は、これら 2 つのグループの人々が独立したファイルのセットを作成して使用できるようにすることです。プログラマーは、PHP コードのみを含むファイルについてのみ注意する必要があり、PHP コードのみを含むファイルについては気にする必要はありません。ページの外観
; ページ デザイナーは、ページに埋め込まれた PHP コードが壊れることを心配することなく、最も使い慣れたビジュアル エディターを使用してページ レイアウトをデザインできます。
PHP テンプレートに関するチュートリアルをいくつか見たことがあれば、テンプレートがどのように機能するかをすでに理解しているはずです。単純なページ パーツを考えてみましょう。ページの上部はヘッダー、左側はナビゲーション バー、残りはコンテンツ領域です。この種の Web サイトには次のテンプレート ファイルを含めることができます:
コードをコピーします コードは次のとおりです: