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