人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで大規模サイトを作成しており、キャッシュ処理に困っています。
【処理内容】
初めて、do.php?a=1 にアクセスしたとき、1.txt を生成してキャッシュとして保存。
で、他の人が do.php?a=1 にアクセスしたとき、PHPを実行しないで、1.txtを直接参照するような形式にしたいです。

何をどうするとできますでしょうか?
具体的なやり方を教えて頂ければ助かります。
宜しくお願い致します。

●質問者: wqwqwqwq
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP txt アクセス キャッシュ サイト
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● ctrl-v
●13ポイント

PHPを実行しないやり方ではありませんが、PHPの負荷を軽くするために、

PEARのCache_Liteを利用されてみてはいかがでしょうか。

http://php.y-110.net/wiki/index.php?PEAR%A1%A7Cache_Lite


2 ● tezcello
●25ポイント

mod_rewrite が使えるのが前提ですが、こんな構造はどうでしょう?


リンク先のアドレスは、全てキャッシュファイルを指すようにしておく。

そのファイルがない場合は、ファイル名からパラメータを分離し、スクリプトに渡す。

1.txt -> do.php?a=1 の様に書き換える

RewriteCond %{REQUEST_FILENAME} !-f

writeRule ^(.+?)\.txt$ do.php?a=$1 [L]

スクリプトではキャッシュファイルの作成をし、それをブラウザへ返す。


3 ● nohohon_x
●13ポイント

Smartyのページキャッシュ機能はいかがでしょうか?insertプラグインで一部動的にすることも可能です。

http://www.smarty.net/manual/ja/caching.php


4 ● ヨネちゃん
●13ポイント

PHPを実行しないわけでなはいのですが、PHPの最初に

if (file_exists($filename) && date(filemtime($filename)) > $re){
require $filename;
}

などとして、$filenameが存在し、更新期限以内である場合は$filenameを読み込んで表示する方法を使っています。

$filenameを作成する方法は、$html .= ;にHTMLを足していき、

$inc = fopen($filename,"w");
fwrite($inc,$html);
fclose($inc);

などで書き出します。


5 ● openseed
●36ポイント ベストアンサー

mod_rewrite が使えるのが前提ですが、リクエストURLを以下のように変更すると、可能かもしれません。

http://hostname/do/a/1.txt

.../htdocs/do/.htaccess の中に、

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/(.*?)$ index.php?$1=$2 [QSA,L]
</IfModule>
DirectoryIndex index.php

index.php の中で、

.../htdocs/do/a/1.txt

にファイルを出力すれば、おそらくPHPは呼ばれません。。。

◎質問者からの返答

ずばりこれです!

試してみます。有難うございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ