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 の組み合わせ):
データベースの作成:
`id` int(11) NOT NULL auto_increment,
` szdtitle` varchar(16 ) NOT NULL、
`szdcontent` text NOT NULL、
PRIMARY KEY (`id`)
) TYPE
ob_start();
$id=_POST['id']
if(!isset($id)&is_integer($id))
{
@$db=new mysqli('localhost','root','admin','bihtml' );
$result=$db->fetch_one_array("select * from szd_bi where id='$id'");
if(!emptyempty($result))
{
$tmp->assign(array(
"Szdtitle",htmlspecialchars($result['titles']),
"Szdcontent",$result['titles'] ));
}
$tpl->display('default_1.tpl');
$this_my_f= ob_get_contents(); //此处关键
ob_end_clean();
$ファイル名 = "$id.html";
if(tohtmlfile_cjjer($filename,$this_my_f))
echo "生成成功 $filename";
else
echo "生成识别";
}
}
//生成ファイルの手順書出関数
function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)
{
if (is_file ($file_cjjer_name)){
@unlink ($file_cjjer_name);
}
$cjjer_handle = fopen ($file_cjjer_name,"w");
if (!is_writable ($file_cjjer_name)){
return false;
}
if (!fwrite ($cjjer_handle,$file_cjjer_content)){
return false;
}
fclose ($cjjer_handle); //关闭指针
return $file_cjjer_name;
}
四、说明事项
1: 一般建议管理员追加データの時候就生成静态页面、可考虑记录生成文件名次和路径。
2: php は主に ob_starts() と ob_get_contents であり、静的な面を生成するときに非常に役立ちますが、当然のことながら、データ パッケージを直接置き換えてモジュール パネルの面の量を考慮することもできます。
3: 主要なモジュールは、smarty を使用します。phplib はすべて使用可能で、smarty の使用は比較的容易です。

ホット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)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
