検索
ホームページバックエンド開発PHPチュートリアルPHPを使用して静的HTMLページを生成する2つの一般的な方法

ユーザーが動的リンクをクリックするたびに、データ クエリ リクエストがサーバーに送信されるためです

何百万もの訪問者がいる可能性がある Web サイトの場合、これは間違いなくサーバーに大きな負担になります

そのため、動的データを変換しますそれを静的 HTML ページに変換することは、人的資源と物的リソースを節約するための第一の選択肢になりました

私はこれまで対応する経験がなかったので、最初はこのテクノロジーが非常に謎に満ちていると思いました

しかし、いくつかの例を読んだ後、そうではないことがわかりましたとても複雑です(ただし、インターネット上の情報は特に詳細ではありません)

午前と午後の実験を経て、最終的にタスクを完了しました。ここにいくつかの考えと簡単な例を示します

笑わないでください

。一般的に、HTML ページを変換して出力するには、PHP を使用します。Da Xia の記事を引用するには、次の 2 つの方法があります:

1 つ目の方法: テンプレートを使用します。現在、強力な Smarty やシンプルで使いやすい Smarttemplate など、多数の PHP テンプレートがあります。各テンプレートには、出力コンテンツを取得する関数があります。静的ページを生成するには、この関数を使用します。この方法を使用する利点は、コードがより明確で読みやすいことです。

ここでは、静的ページを生成する方法を説明するために例として Smarty を使用します:

  1. require("smarty/Smarty.class.php");
  2. $t = new Smarty;
  3. $t ->assign("title","Hello World!");
  4. $content = $t->fetch("templates/index.htm");
  5. //ここでの fetch() は次のとおりです出力コンテンツ関数を取得するには、$content 変数に表示するコンテンツを入れます
  6. $fp = fopen("archives/2005/05/19/0001.html", "w");
  7. fwrite($ fp, $content );
  8. fclose($fp);
  9. ?>

2 番目の方法: ob シリーズの関数を使用します。ここで使用される関数は主に ob_start()、ob_end_flush()、ob_get_content() です。ここで、ob_start() はブラウザのバッファを開くことを意味し、代わりに PHP プログラムからのファイル以外のヘッダー情報はすべて送信されません。この関数の最も重要な関数は、上記の fetch() と同等のバッファの内容を取得することです。理由は同じです。

  1. ob_start();
  2. echo "Hello World!";
  3. $content = ob_get_contents();//php ページによって出力されたすべてのコンテンツを取得します
  4. $fp = fopen( "archives /2005/05/19/0001.html", "w");
  5. fwrite($fp, $content);
  6. fclose($fp);
  7. ?>

2 番目のタイプ I方法は、ob シリーズの関数を使用することです

最初にこれを読んだとき、私は少しわかりませんでしたが、後で、ob が出力バッファリング、つまり出力キャッシュであることを知りました

出力の準備ができたら、すべてのデータが保存されます。サーバーがphpを解析した後、クライアントに出力するHTMLコードはすべてobに保存されます。HTMLの静的ページを出力したい場合は、キャッシュを取り出してHTMLページに書き込むだけです。

その原理は実際には非常に単純です

ここではいくつかの関数が使用されています。私はPHPを初めて使用するため、多くの関数を理解していませんので、ここで説明します

ob_start()。 : キャッシュの「キャプチャ」を開始します。つまり、ここからブラウザのキャッシュを開きます

ob_end_flush(): ブラウザのキャッシュをオフにします

ob_g​​et_content(): キャッシュされたコンテンツを読み取ります

fopen("ファイルパス", "オープンモード" ) ファイルを開く この関数にはいくつかの開くモードがあります。主なモードは次のとおりです:

"r" 読み取り専用モードで開き、ファイル ポインタをファイル ヘッダーにポイントします。

「r+」 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。

"w" は書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。

「w+」 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。

fwrite("ファイル名", "書き込み内容") ファイルを書き込みます

fclose() ファイルを閉じます

変換したいHTMLファイルはたくさんあるので、数百になる可能性があるので、fopenへのパスはありませんここで静的に指定することができます。HTML ファイルの名前付けを容易にするために、ユーザーが送信した ID やその他の情報を保存できるパス変数を設定できます。前回、PHP で XML データを読み取る方法の簡単な例を示します。

  1. ob_start();//ブラウザキャッシュを開きます
  2. //以下はXMLデータを読み込みます
  3. $parser = xml_parser_create(); //パーサーエディタを作成します
  4. xml_set_element_handler($parser, "startElement", "endElement");//タグトリガー設定時の対応関数はそれぞれstartElementとendElenmentです
  5. xml_set_character_data_handler($parser, "characterData");//データ設定時reading 対応する関数
  6. $xml_file="1.xml";// 読み取る XML ファイルを指定します (url など)
  7. $filehandler = fopen($xml_file, "r");// ファイルを開きます
  8. while ($data = fread($filehandler, 4096))
  9. {
  10. xml_parse($parser, $data, feof($filehandler));
  11. }//それぞれの処理のために 4096 バイトを取り出しますtime
  12. fclose($filehandler);
  13. xml_parser_free($parser);//パーサー parser を閉じて解放します
  14. $name=false;
  15. $position=false;
  16. function startElement( $parser_instance , $element_name, $attrs) //開始タグイベントの関数
  17. {
  18. global $name,$position;
  19. if($element_name=="NAME")
  20. {
  21. $name=true;
  22. $position=false;
  23. echo "名前:";
  24. }
  25. if($element_name=="POSITION")
  26. {$name=false;
  27. $position=true;
  28. echo "位置: ";
  29. }
  30. }
  31. function CharacterData($parser_instance, $xml_data) //データ読み込み時の関数
  32. {
  33. global $name,$position;
  34. if($position)
  35. echo $xml_data."
    ";
  36. if($name)
  37. echo $xml_data."
    ";
  38. }
  39. function endElement($parser_instance, $element_name ) //タグイベントを終了する関数
  40. {
  41. global $name,$position;
  42. $name=false;
  43. $position=false;
  44. }
  45. //Xmlデータの読み込みが完了
  46. $ htmlname=$id.".html";//$id はユーザーによって渡される ID を表します
  47. $htmlpath="archives/".$htmlname; //パス変数を設定します
  48. $ content = ob_get_contents( );//PHP ページによって出力されたすべてのコンテンツを取得します
  49. $fp = fopen($htmlpath, "w");
  50. fwrite($fp, $content);
  51. fclose($fp) ;
  52. ?>

転載: http://www.cnblogs.com/awinlei/archive/2013/03/04/2942962.html

上記では、PHP を使用して静的 HTML ページを生成するための 2 つの一般的な方法と、関連するコンテンツを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの目的:動的なWebサイトの構築PHPの目的:動的なWebサイトの構築Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較PHPおよびPython:コードの例と比較Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません