ホームページ > バックエンド開発 > PHPチュートリアル > PHPで静的ページを生成するための詳細なチュートリアル

PHPで静的ページを生成するための詳細なチュートリアル

WBOY
リリース: 2016-07-25 09:05:47
オリジナル
978 人が閲覧しました
  1. { title }
  2. これは { file } ファイルのテンプルです
コードをコピー

PHP処理: テンプレートテスト.php

  1. $title = "テストテンプレート";
  2. $file = "TwoMax Inter test Templet,author:Matrix@Two_Max";
  3. $fp = fopen ("temp.html","r ");
  4. $content = fread ($fp,filesize ("temp.html"));
  5. $content .= str_replace ("{ file }",$file,$content);
  6. $content .= str_replace (" { title }",$title,$content);
  7. echo $content;
  8. ?>
コードをコピー

テンプレートの解析処理、つまり、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 という名前の静的ファイルを生成するように指定すると、次のようになります。

  1. $title = "テスト テンプレート";
  2. $file = "TwoMax 内部テスト テンプレート,author:Matrix@Two_Max";
  3. $fp = fopen ("temp.html","r ");
  4. $content = fread ($fp,filesize ("temp.html"));
  5. $content .= str_replace ("{ file }",$file,$content);
  6. $content .= str_replace (" { title }",$title,$content);
  7. // echo $content;
  8. $filename = "test/test.html";
  9. $handle = fopen ($filename,"w"); // ファイル ポインタを開く、ファイルを作成します
  10. /*
  11. ファイルが作成され、書き込み可能かどうかを確認します
  12. */
  13. if (!is_writable ($filename)){
  14. die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してくださいもう一度試してください Try! ");
  15. }
  16. if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
  17. die ("Generate file".$filename."Failed!");
  18. }
  19. fclose ( $handle); //ポインタを閉じる
  20. die ("Create file".$filename."Success!");
  21. ?>
コードをコピー

一般的な問題の解決策のリファレンス: 1. 記事リストの問題: データベースにフィールドを作成し、ファイルが生成されるたびに、自動的に生成されたファイル名がデータベースに保存されます。静的ファイルが保存されている指定されたフォルダー内のページをポイントするだけです。 PHP 操作を使用して記事リストを処理し、文字列として保存し、ページの生成時にこの文字列を置き換えます。たとえば、ページ上で記事リストが配置されるテーブルと PHP 処理ファイルにタグ {articletable} を追加します。

  1. $title = "テスト テンプレート";
  2. $file = "TwoMax 内部テスト テンプレート,author:Matrix@Two_Max";
  3. $fp = fopen ("temp.html","r ");
  4. $content = fread ($fp,filesize ("temp.html"));
  5. $content .= str_replace ("{ file }",$file,$content);
  6. $content .= str_replace (" { title }",$title,$content);
  7. //リスト生成開始
  8. $list = '';
  9. $sql = "記事からID,タイトル,ファイル名を選択";
  10. $query = mysql_query ($sql);
  11. while ($result = mysql_fetch_array ($query)){
  12. $list .= ''.$result['title'].'';
  13. }
  14. $content .= str_replace ("{articletable }",$list, $content);
  15. //リスト生成終了
  16. // echo $content;
  17. $filename = "test/test.html";
  18. $handle = fopen ($filename,"w"); //ファイルポインタを開くファイルを作成してください
  19. /*
  20. ファイルが作成され、書き込み可能かどうかを確認してください
  21. */
  22. if (!is_writable ($filename)){
  23. die ("File: ".$filename." は書き込み可能ではありません。プロパティを確認してください。もう一度試してください! ");
  24. }
  25. if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
  26. die ("Generate file".$filename."Failed!");
  27. }
  28. fclose ($handle ); //ポインタを閉じる
  29. die ("Create file".$filename."Success!");
  30. ?>
コードをコピー

2番目に、ページングの問題。 ページネーションを指定すると、1 ページあたり 20 件の記事が表示されます。データベース クエリによると、特定のサブチャネル リストには 45 個の記事があります。まず、クエリを通じて次のパラメータを取得します。1、ページの総数、2、ページごとの記事数。 2 番目のステップ、for ($i = 0; $i

  1. $fp = fopen ("temp.html","r");
  2. $content = fread ($fp,filesize ("temp.html"));
  3. $onepage = '20';
  4. $sql = "channel='$channelid' の記事から ID を選択";
  5. $query = mysql_query ($sql);
  6. $num = mysql_num_rows ($query);
  7. $allpages = ceil ($num / $onepage);
  8. for ($i = 0;$i<$allpages; $i++){
  9. if ($i == 0){
  10. $indexpath = "index.html";
  11. } else {
  12. $indexpath = "index_".$i."html";
  13. }
  14. $start = $i * $onepage;
  15. $list = '';
  16. $sql_for_page = "チャネル='$channelidの記事から名前、ファイル名、タイトルを選択してください' 制限 $start,$onepage";
  17. $query_for_page = mysql_query ($sql_for_page);
  18. while ($result = $query_for_page){
  19. $list .= ''.$title.'';
  20. }
  21. $content = str_replace ("{articletable }",$list,$content);
  22. if (is_file ($indexpath)){
  23. @unlink ($indexpath); // ファイルが既に存在する場合は削除します
  24. }
  25. $handle = fopen ( $indexpath,"w"); //ファイルポインタを開き、ファイルを作成します
  26. /*
  27. ファイルが作成され、書き込み可能かどうかを確認します
  28. */
  29. if (!is_writable ($indexpath)){
  30. echo "File: " .$indexpath ."書き込み可能ではありません。プロパティを確認して再試行してください!" //echo
  31. }
  32. if (!fwrite ($handle,$content)){ //ファイルに情報を書き込みます
  33. echo " file". $indexpath."Failed!"; //echo
  34. }
  35. fclose ($handle); //ポインタを閉じる
  36. }
  37. fclose ($fp);
  38. die ("ページングファイルの生成が完了しました。生成は不完全です。ファイル許可システムを確認してから再生成してください。 ");
  39. ?>
コードをコピー

その他のデータ生成、データ入出力チェック、ページングコンテンツポインティングなどを必要に応じてページに追加できます。

興味がありそうな記事: PHP で静的ページを生成する 3 つの方法とコードの詳細 静的ページ関数を生成するPHPの例(php2html) PHPで静的ページを生成する方法(3つの関数) PHPによって生成された静的ファイルのテンプレートとキャッシュの詳細 静的ページを生成するためにphpで書かれたクラス 仮想ホスト上に静的ページを定期的に自動生成する方法 phpで静的ファイルを生成する2つの方法 静的HTMLファイルを生成するPHPの原理分析 smartyを使用して静的ページを生成する方法 PHPが静的HTMLファイルを生成する原理を理解する PHPで静的ページを生成する方法 phpで静的htmlファイルを生成する3つの方法



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート