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() を呼び出す必要はなくなりました。
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システムで動的ページを静的にする方法