ホームページ >バックエンド開発 >PHPチュートリアル >PHPによる静的ページ解析テンプレートの生成+キャッシュ+ファイルの書き込みについて_PHPチュートリアル
1. はじめに
速度の点では、静的ページは PHP などの動的ページよりもはるかに高速です。ただし、静的ページは柔軟性が低いため、関連する情報がデータベースやデータベースの助けを借りて保存されていない場合は、その他のデバイスでは、閲覧権限制限などの変更や編集など、全体的な管理が比較的煩雑です。ただし、開発したニュースリリースシステムなど、頻繁に使用する一部のファイルについては、多くのユーザーに公開したくない場合があります。結果を表示する前にデータベースを読み取ることは、サーバーのリソースを消費する一方で、ブラウザの貴重な応答時間を多く消費することになります。そのため、「静的ページ」アプローチでは、現在、多くの Web サイトではこのテクノロジーが使用されており、通常はバックエンドで管理され、直接表示用の HTML を生成するか、CSS で表示を制御するために xhtml を使用するか、xslt で表示用の XML を生成します。 HTML の生成方法について簡単に説明します
2. 予備知識
テンプレート技術 :
[PHP] テンプレート エンジン Smarty の詳細な紹介--2005-12-31
[PHP] Smarty 技術の構成と使用方法について説明します。 --2006-01-04
キャッシュ技術:
一部の情報は変更されないことがよくありますが、変更される可能性があります。いわゆるキャッシュは、表示を高速化するために、変更される情報をキャッシュに入れるのに非常に役立ちます。一般的に理解されているのは、サーバー側に保存される共通の情報です。キャッシュを保存するときに、たとえば 5 分に 1 回更新するかどうかを指定できます。 、最終更新時間を記録し、それを現在の時間と比較することができます。それ以外の場合は、キャッシュされたデータを直接読み取る必要があります。クライアント ユーザー、1 回のみ。
ob_start() 関数: 出力バッファを開きます。
関数形式 void ob_start(void)
説明: バッファがアクティブ化されると、PHP プログラムからのすべての非ファイル ヘッダーは送信されません。ただし、内部バッファに保存されます。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。
フラッシュ: バッファーと出力の内容をフラッシュします。
関数形式: flash()
説明: この関数は頻繁に使用され、非常に効率的です。
ob_get_contents: 内部バッファの内容を返します。
関数の形式: string ob_get_contents(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。
ob_get_length: 内部バッファの長さを返します。
関数の形式: int ob_get_length(void)
説明: この関数は、ob_get_contents と同様に、現在のバッファーの長さを返します。出力バッファーがアクティブ化されていない場合は、FALSE を返します。
ob_end_clean: 内部バッファーの内容を削除して閉じます。 it 内部バッファ
関数形式: void ob_end_clean(void)
説明: この関数は内部バッファの内容を出力せず、削除します
ob_end_flush: 内部バッファの内容をブラウザに送信し、出力バッファを閉じます
関数形式: void ob_end_flush(void)
説明: この関数は出力バッファーの内容 (存在する場合) を送信します
ob_implicit_flush: 絶対フラッシュをオンまたはオフにします
関数形式: void ob_implicit_flush ([int flag])
説明: デフォルトはオフですバッファ、絶対出力をオンにした後、各スクリプト出力はブラウザに直接送信され、flush() を呼び出す必要がなくなりました。
ファイルの書き込み:
int fwrite (リソース ハンドル, 文字列 string [, int length])
fwrite() Write文字列の内容をファイル ポインタ ハンドルに渡します。 length を指定した場合、length バイトが書き込まれたとき、または文字列が書き込まれたときのいずれかが先に発生した時点で書き込みが停止します。
fwrite() は書き込まれた文字数を返します。エラーが発生した場合は FALSE を返します。
関連参考公式サイト: ファイルリファレンス
3. 解決策: ob_start バッファーをオンにし、データが呼び出されたときに ob_get_contents を取得し、静的ページを生成し、ob_end_clean でバッファーをクリアします。例 (php+mysql の組み合わせ):
データベースの作成: