ob シリーズ関数を使用して静的な PHP Web サイト ページを実現する、obphp_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:21:06
オリジナル
1196 人が閲覧しました

ob シリーズ関数を使用して静的な PHP Web サイトページ、obphp を実現します

PHPの実行ページをあらかじめHTMLに変換しておくのは、いわゆるPHPの静的メソッドの一つです。

その他の方法には、テンプレート置換方法、opcache などの方法があります。

静電化の役割:

ウェブサイトの応答速度を向上させ、サーバーの負荷を軽減します;
検索エンジンの SEO
PHP を使用してバッファを出力し、それを HTML に直接書き込み、バックグラウンドで Web サイトを定期的にスキャンします。これは、静的な Web ページを実現する比較的簡単な方法です。

静的化前:

リーリー

静的:

リーリー

このコードは、test.html を事前に作成します。これは実際には、ニュース Web サイトと同様に、作成後に公開されるコンテンツが変更されないため、静的に変換する方が適しています。 HTML。

ユーザーがアクセスするときは、この HTML ページに誘導するだけです。

Apache ベンチマークを使用して効果をテストするだけです:

ab.exe -n1000 -c10

90% 以上の接続では、2 つの接続の差は少なくとも 150 ミリ秒です。複雑な PHP と比較すると、HTML は依然として多くの計算を節約できます。

関連機能の紹介を添付します


1. フラッシュ: バッファーと出力の内容をリフレッシュします。
関数形式: flash()
説明: この関数は頻繁に使用され、非常に効率的です。

2. ob_start: 出力バッファを開きます
関数形式: void ob_start(void)
注: バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。

3、ob_get_contents: 内部バッファの内容を返します。
使用法: string ob_get_contents(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。FALSE を返します。

4. ob_get_length: 内部バッファーの長さを返します。
使用法: int ob_get_length(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、ob_get_contents と同じように現在のバッファの長さを返します。その後、FALSE を返します。

5. ob_end_flush: 内部バッファの内容をブラウザに送信し、出力バッファを閉じます。
使用法: void ob_end_flush(void)
説明: この関数は、出力バッファーの内容 (存在する場合) を送信します。

6. ob_end_clean: 内部バッファの内容を削除し、内部バッファを閉じます
使用法: void ob_end_clean(void)
説明: この関数は内部バッファの内容を出力せず、削除します。

7. ob_implicit_flush: 絶対リフレッシュをオンまたはオフにします
使用法: void ob_implicit_flush ([int flag])
注: Perl を使用したことがある人なら誰でも $|=x の意味を知っています。この文字列はバッファをオープン/クローズできます。デフォルトでは、絶対出力をオンにした後にバッファをクローズします。スクリプト出力はブラウザに直接送信されるため、flush() を呼び出す必要はなくなりました。

大規模な PHP Web サイトでサイト全体を静的にするにはどうすればよいですか? 小さな記事が変更されるたびに、何万ページものページを再生成する必要がある場合はどうなるでしょうか?

libTemplate を使用して静的 Web ページを生成します

著者: iwind

もともと dev-club で公開された記事、テンプレート処理プログラム PHPlib で template.inc を使用して静的 Web ページを生成する方法、笑、実際にはエッセンスに含まれていました、多くのウェブサイトに転載されており、それは光栄なことだと思います。実際、これについてはインターネット上にたくさんあります。ここに掲載したいわゆる IAMS (iwind 記事管理システム) もありますので、興味のある方はご覧ください。以下に簡単にまとめておきます。

現在、静的 Web ページを生成するには 3 つの方法があると言われています。1 つは、www.devarticles.com/c/b/PHP/ にアクセスして確認できます。このために。もう 1 つは、ob_ 関数を使用して出力を制御することです。方法は次のとおりです: まず ob_start(); を使用して出力バッファを開き、次にデータの分析や操作などを行い、次に ob_get_contents(); を使用してバッファの内容を取得し、ファイルに書き込みます。この手順に従って、次のようなプログラムを書くことができます:
ob_start();
//本体、データ操作、処理、出力など。 。 。
require”global.php”;
mysql_connect(”localhost”,”root”,””);
…..
//バッファの内容を取得します
$contents=ob_get_contents() // 必要ない場合何かを出力するには、次の文を追加します
ob_end_clean();
//宛先ファイルを書き込みます
$fp=@fopen($targetFile,”w+”) または die(“ファイルを開くエラー”)
fwrite($fp); ,$ content);
?>

このようにして、この動的ページのコンテンツが静的ページ $targetFile に書き込まれます。たとえば、n 個のクエリ ステートメントが必要になります。と呼ばれる場合は、静的な Web ページを定期的に生成するとよいでしょう。つまり、アクセス速度が大幅に向上し、サーバーの負担が軽減されます。

ご覧のとおり、複数のページの一括書き込みまたは更新の場合、ob_ を使用するだけでは機能しません。これは、テンプレートを使用した 3 番目の方法について説明します。テンプレートは良いものであり、今では誰もが多かれ少なかれテンプレートを使用しています。単純なテンプレート処理に慣れていないネットユーザーは、一般に、テンプレート処理プログラムを学ぶのに時間をかけることをお勧めします。テンプレートを利用して静的Webページを生成する方法は、解析結果を取得してファイルに書き込むだけで非常に簡単です。 PHPlib の template.inc を使用して、テンプレートを使用して静的 Web ページを生成する方法について説明しましょう。

まず、template.incを修正します
以下の関数を追加します:
//解析結果をファイルに保存します
function savetofile ($dir,$varname){
$data=$this-> ; get_var($varname));
$fp=fopen($dir, "w+ ");
fwrite($fp,$data);
// 割り当てられた配列をクリアします
$this ->v...本文の続き>>



PHPシステムで動的ページを静的にする方法

動的と静的の鍵は、新浪ニュースのように、ウェブサイトの種類によって異なります。そのようなウェブサイトでは、公開後の変更の数が比較的少ない場合があります。静的 HTML ページを生成する方法がより適切です。ページのコンテンツが頻繁に変更される場合は、現時点では、memcache や redis などのキャッシュを組み合わせて使用​​することを選択できます。アプリとデータベースサーバーの負荷を同時に実行してみませんか?擬似静的の利点は、SEO の最適化に有益であり、検索エンジンを通じてより高いランキングを獲得できるため、より多くのトラフィックを獲得できることです。


http://www.bkjia.com/PHPjc/863319.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/863319.html技術記事 ob シリーズ関数を使用して、静的な PHP Web サイト ページを実現します。 obphp は、PHP 実行ページを HTML に事前変換します。これは、いわゆる PHP 静的メソッドの 1 つです。 その他には、テンプレートの置換、opcache などが含まれます...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!