2012-01-03 7 views
0

今日、私はNew's Websiteに取り組んでいます。バックエンドは、PHPフレームワークを使用せずにゼロから書いています。PHPでテンプレートをレンダリングする

私の関心は、不合理な定期的なクエリのに対しては、MySQL(「それはどういう意味!:)」)最初のページのユーザーに

あるだろうページ管理者インサートはポスト私だときのみ更新記事を参照してくださいので、私は思いましたレンダーする.html更新された最新の投稿とユーザーがそこにすべての投稿があり、すべてがうまくいっているファイルがリダイレクトされます。 これまでのIndex.phpが実行され、MySQLで選択してデータを提示しました。今はIndex.phpを実行したいです。コンテンツを取得してIndex.htmlとして保存してください。

です。 PHPファイル、Localeを実行して、User's ExecuteのようにOutputをHTMLファイルに保存します。

+0

私が正しく理解していれば、スクリプトの出力をキャッシュする方法を知る必要がありますか? –

+0

PHPとキャッシングについてよく読んでください。 –

+0

はい、何とか手動キャッシュです – Burimi

答えて

2

はい。あなたが行うことができるのは、Curlライブラリを使用して、あなたのindex.phpを完全なURLで呼ぶことです。 (例えば、http://127.0.0.1/index.php)。したがって、コードの代わりに実行されたindex.phpの出力を取得します。次に、file_put_contents関数を使用して、出力をindex.htmlファイルに保存することができます。

2

PHPの出力バッファリングを使用し、出力バッファをファイルに格納するのが最も簡単な方法です。

ob_start(); 
// process page here 
$buffer = ob_get_flush(); // this will display the contents of the output buffer and return the contents into $buffer 
file_put_contents('index.html', $buffer); 
0

だけ短いヒント:

あなたのPHPファイルは、データベースからデータを取得し、htmlファイルへの出力バッファと安全なすべてのものを経由して、それの出力を保存します。スクリプトは、.htmlファイルが存在するかどうかをチェックするだけです。作成しない場合は>作成します。 else>内容を含める/印刷する。

ラリーは単純で、常にデータベースにクエリする必要はありません。

0

Varnishのように、Webアプリケーションの前に座ってキャッシュレイヤーを提供することをお勧めします。

これはユーザーとアプリケーションの間にあるため、言語/フレームワークに依存しないため、統合の労力が低くなる傾向があります。

(私はこれは実装の詳細の面で正確にあなたの質問に答えていませんが、私はあなたのアプリケーションの内部キャッシングすると、データベースの負荷を軽減するための唯一の選択肢ではないことを指摘したい実現)

0

を考えるために、いくつかの文:照会することを意図し

  1. データベース。基本的に「MySQLに対する定期的なクエリ」に間違ったものはありません。 現実世界ウェブサイト上

  2. はだけでなく、動的な部分があるでしょう:バナー、コメント数、新鮮なブログの記事と、そのようなのようなものがあるでしょう。

  3. このようなキャッシュ方法を使用しています。新しいデータを取得するためにページをリフレッシュしようとしているときに、が非常に厄介なになると何も返されません。

  4. 早期最適化はすべての悪の根です。