ホームページ バックエンド開発 PHPチュートリアル PHPによる静的ページ解析テンプレートの生成+キャッシュ+ファイルの書き込みについて_PHPチュートリアル

PHPによる静的ページ解析テンプレートの生成+キャッシュ+ファイルの書き込みについて_PHPチュートリアル

Jul 21, 2016 pm 03:45 PM
php 1つ 優れた 書く 分析する 動的 存在する 書類 テンプレート 生成する キャッシュ スピード 静的 ページ

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_g​​et_contents: 内部バッファの内容を返します。
関数の形式: string ob_get_contents(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。
ob_g​​et_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 の組み合わせ):
データベースの作成:

コードをコピー コードは次のとおりです:
Create TABLE `bihtml` (
`id` int(11) NOT NULL auto_increment,
` szdtitle` varchar(16 ) NOT NULL、
`szdcontent` text NOT NULL、
PRIMARY KEY (`id`)
) TYPE

現在の ID を取得し、テンプレートをインポートします:

コードをコピーしますコードは次のとおりです:

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 の使用は比較的容易です。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/320371.html技術記事一、速度的に言えば、静的页面の方が動的页面の比較phpが非常に多いですが、これは疑いの余地はありませんが、静的页面の活性差によるものであり、データセットやその他の設計を利用しない場合...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

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

See all articles