顧客向けのシンプルなウェブサイトを構築するためのシンプルな cms を作成しました。cms はデータベース駆動型です。パフォーマンスを向上させるために、Web サイトのオフライン/キャッシュ/静的コピーを作成したいと考えています。
Web サイトをトラバースして静的バージョンを作成する php スクリプトはありますか?
自分で作成して、シンプルな CMS に統合しますか?
Memcache、APC、およびアプリケーションによって生成された単純な静的ファイルなど、使用できる可能性はたくさんあります。
キャッシュの書き込みに関する実際の問題を提供していないため、質問はかなりあいまいです。しかし、私が言及した最初の 2 つのオプションに加えて、単純な静的ファイル キャッシュは、 file_get_contents、file_put_contents、およびfilemtimeで実現できます。
例 (緩い):
<?php
if( file_exists("/cache_dir/".$page_name) && (time() - filemtime("/cache_dir/".$page_name)) > 300)
{
$contents = file_get_contens("/cache_dir/".$page_name);
}
else
{
// getting the page contents
ob_start();
//output your page
$contents = ob_get_clean();
file_put_contens($contents, "/cache_dir/".$page_name);
}
echo $contents;
?>
これは短く大まかに作成された例ですが、アプリケーションに適したソリューションを作成する方法を理解するのに役立つ場合があります。
サイトを最適化するために多くのことを行うことができます。ほとんどの場合、サイトをトラバースしてキャッシュを作成することはありません。非常に単純な独自のクラスを作成するか、既に作成されているクラスを使用することができます。
http://www.jongales.com/blog/2009/02/18/simple-file-based-php-cache-class/
それが機能する方法は、誰かがライブページに初めてアクセスしたときに、キャッシュが存在しない場合はキャッシュを作成しますが、キャッシュが存在する場合はキャッシュバージョンを提供します
キャッシュは、特にオフラインの場合、ほとんどの最新のブラウザーによって自動的に行われます。PHP はサーバー側の言語であるため、「オンライン」エンドでのみ影響を与えるように制限されています。ただし、パフォーマンスを向上させたい場合は、PHP を介してリソースを自動的に縮小してみることができます。
データをオフラインで保存することに非常に熱心な場合は、Cookie に何が収まるかを確認できますが、それが従来の方法であるとは思えません。
編集:
サーバー側で静的ページを作成することを意味する場合は、そうです。適切な権限があれば、fopen() および関連する関数を使用してページを作成および編集できます。