PHPを使用して静的HTMLページを生成する2つの一般的な方法
ユーザーが動的リンクをクリックするたびに、データ クエリ リクエストがサーバーに送信されるためです
何百万もの訪問者がいる可能性がある Web サイトの場合、これは間違いなくサーバーに大きな負担になります
そのため、動的データを変換しますそれを静的 HTML ページに変換することは、人的資源と物的リソースを節約するための第一の選択肢になりました
私はこれまで対応する経験がなかったので、最初はこのテクノロジーが非常に謎に満ちていると思いました
しかし、いくつかの例を読んだ後、そうではないことがわかりましたとても複雑です(ただし、インターネット上の情報は特に詳細ではありません)
午前と午後の実験を経て、最終的にタスクを完了しました。ここにいくつかの考えと簡単な例を示します
笑わないでください
。一般的に、HTML ページを変換して出力するには、PHP を使用します。Da Xia の記事を引用するには、次の 2 つの方法があります:
1 つ目の方法: テンプレートを使用します。現在、強力な Smarty やシンプルで使いやすい Smarttemplate など、多数の PHP テンプレートがあります。各テンプレートには、出力コンテンツを取得する関数があります。静的ページを生成するには、この関数を使用します。この方法を使用する利点は、コードがより明確で読みやすいことです。
ここでは、静的ページを生成する方法を説明するために例として Smarty を使用します:
- require("smarty/Smarty.class.php");
- $t = new Smarty;
- $t ->assign("title","Hello World!");
- $content = $t->fetch("templates/index.htm");
- //ここでの fetch() は次のとおりです出力コンテンツ関数を取得するには、$content 変数に表示するコンテンツを入れます
- $fp = fopen("archives/2005/05/19/0001.html", "w");
- fwrite($ fp, $content );
- fclose($fp);
- ?>
2 番目の方法: ob シリーズの関数を使用します。ここで使用される関数は主に ob_start()、ob_end_flush()、ob_get_content() です。ここで、ob_start() はブラウザのバッファを開くことを意味し、代わりに PHP プログラムからのファイル以外のヘッダー情報はすべて送信されません。この関数の最も重要な関数は、上記の fetch() と同等のバッファの内容を取得することです。理由は同じです。
- ob_start();
- echo "Hello World!";
- $content = ob_get_contents();//php ページによって出力されたすべてのコンテンツを取得します
- $fp = fopen( "archives /2005/05/19/0001.html", "w");
- fwrite($fp, $content);
- fclose($fp);
- ?>
2 番目のタイプ I方法は、ob シリーズの関数を使用することです
最初にこれを読んだとき、私は少しわかりませんでしたが、後で、ob が出力バッファリング、つまり出力キャッシュであることを知りました
出力の準備ができたら、すべてのデータが保存されます。サーバーがphpを解析した後、クライアントに出力するHTMLコードはすべてobに保存されます。HTMLの静的ページを出力したい場合は、キャッシュを取り出してHTMLページに書き込むだけです。
その原理は実際には非常に単純です
ここではいくつかの関数が使用されています。私はPHPを初めて使用するため、多くの関数を理解していませんので、ここで説明します
ob_start()。 : キャッシュの「キャプチャ」を開始します。つまり、ここからブラウザのキャッシュを開きます
ob_end_flush(): ブラウザのキャッシュをオフにします
ob_get_content(): キャッシュされたコンテンツを読み取ります
fopen("ファイルパス", "オープンモード" ) ファイルを開く この関数にはいくつかの開くモードがあります。主なモードは次のとおりです:
"r" 読み取り専用モードで開き、ファイル ポインタをファイル ヘッダーにポイントします。
「r+」 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。
"w" は書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
「w+」 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
fwrite("ファイル名", "書き込み内容") ファイルを書き込みます
fclose() ファイルを閉じます
変換したいHTMLファイルはたくさんあるので、数百になる可能性があるので、fopenへのパスはありませんここで静的に指定することができます。HTML ファイルの名前付けを容易にするために、ユーザーが送信した ID やその他の情報を保存できるパス変数を設定できます。前回、PHP で XML データを読み取る方法の簡単な例を示します。
- ob_start();//ブラウザキャッシュを開きます
- //以下はXMLデータを読み込みます
- $parser = xml_parser_create(); //パーサーエディタを作成します
- xml_set_element_handler($parser, "startElement", "endElement");//タグトリガー設定時の対応関数はそれぞれstartElementとendElenmentです
- xml_set_character_data_handler($parser, "characterData");//データ設定時reading 対応する関数
- $xml_file="1.xml";// 読み取る XML ファイルを指定します (url など)
- $filehandler = fopen($xml_file, "r");// ファイルを開きます
- while ($data = fread($filehandler, 4096))
- {
- xml_parse($parser, $data, feof($filehandler));
- }//それぞれの処理のために 4096 バイトを取り出しますtime
- fclose($filehandler);
- xml_parser_free($parser);//パーサー parser を閉じて解放します
- $name=false;
- $position=false;
- function startElement( $parser_instance , $element_name, $attrs) //開始タグイベントの関数
- {
- global $name,$position;
- if($element_name=="NAME")
- {
- $name=true;
- $position=false;
- echo "名前:";
- }
- if($element_name=="POSITION")
- {$name=false;
- $position=true;
- echo "位置: ";
- }
- }
- function CharacterData($parser_instance, $xml_data) //データ読み込み時の関数
- {
- global $name,$position;
- if($position)
- echo $xml_data."
"; - if($name)
- echo $xml_data."
"; - }
- function endElement($parser_instance, $element_name ) //タグイベントを終了する関数
- {
- global $name,$position;
- $name=false;
- $position=false;
- }
- //Xmlデータの読み込みが完了
- $ htmlname=$id.".html";//$id はユーザーによって渡される ID を表します
- $htmlpath="archives/".$htmlname; //パス変数を設定します
- $ content = ob_get_contents( );//PHP ページによって出力されたすべてのコンテンツを取得します
- $fp = fopen($htmlpath, "w");
- fwrite($fp, $content);
- fclose($fp) ;
- ?>
転載: http://www.cnblogs.com/awinlei/archive/2013/03/04/2942962.html
上記では、PHP を使用して静的 HTML ページを生成するための 2 つの一般的な方法と、関連するコンテンツを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

HTML オンクリック ボタンのガイド。ここでは、それらの紹介、動作、例、およびさまざまなイベントでの onclick イベントについてそれぞれ説明します。
