ホームページ  >  記事  >  バックエンド開発  >  ob シリーズ関数に基づいた静的 PHP Web サイトページの実装

ob シリーズ関数に基づいた静的 PHP Web サイトページの実装

coldplay.xixi
coldplay.xixi転載
2020-07-14 17:21:322273ブラウズ

ob シリーズ関数に基づいた静的 PHP Web サイトページの実装

PHP 実行ページを HTML に事前変換することは、いわゆる PHP 静的メソッドの 1 つです。

他の方法には、テンプレート置換、opcache、その他の方法が含まれます。

静的化の役割:

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

静的化前:

<?php
for($i=0;$i<1000;$i++){
 echo "bull<br>";
}
?>

静的化:

<?php
ob_start();
for($i=0;$i<1000;$i++){
 echo "bull<br>";
}
$str = ob_get_contents();
ob_end_clean();
$fp = fopen("test.html","w");
fwrite($fp,$str);
fclose($fp);
echo "<p>success write</p>";
?>

このコードは、test.html を事前に形成します。率直に言うと、実際にはニュースのように空間と時間を交換します。この種の Web サイトの場合、公開されるコンテンツは基本的に作成後に変更されないため、静的に HTML に変換される方が適しています。

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

Apache ベンチマークを使用して効果をテストしてください:

ab.exe -n1000 -c10

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

関連関数の簡単な紹介を添付します

1. Flush: バッファと出力の内容を更新します。
関数形式: 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 を使用したことがある人なら誰でも $|= を知っています。の意味 )。

関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで

以上がob シリーズ関数に基づいた静的 PHP Web サイトページの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。