アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPに詳しい方が居られたら教えてください。

$file="http://www.sample.com/test.txt"
$fp=fopen($file,"r");
(処理)
close($fp);

というようにして、別のサイトにおいてあるファイルを
読み込みんで処理したい場合、

"test.txt"の内容を変えても、変更前の内容を読み込ん
でしまいます。

パソコンにキャッシュされているファイルにアクセスして
いると思うのですが、

"test.txt"の内容を変えたら、確実に変更後の内容を
読み込むようにする方法はありませんでしょうか?

どうぞよろしくお願いします。

A 回答 (4件)

file関数で出来るかはわかりませんが、


以下のような方法でだます方法もあります。

URLに ローカルタイムなど 常に変化する変数などを追加しておくと、
毎回 読み込んでくれるはずです。

$a = time();
$file="​http://www.sample.com/test.txt"​ . "?" . $a;
    • good
    • 0
この回答へのお礼

test.php
内で、
<? rewuire("test2.php"); ?>
として、test2.php内で、
-------------------------------
$a = time();
$file="http://www.sample.com/test.txt?".$a;
$fp=fopen($file,"r");
(処理)
close($fp);
---------------------------------
としてうまくいきました。

どうもありがとうございました!

ちなみに、test.phpのヘッダーに下記メタタグを
追加する方法ではなぜか、うまくいきませんでした。

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache /">
<meta http-equiv="Expires" content="-1" />

上記のような構成の場合、ヘッダー情報を操作して、
キャッシュしなくする方法があれば、
引き続きご教授いただければ幸いです。

もう少しご回答を受け付けますので、
ご存知の方がが居られましたら
よろしくお願いいたします。

お礼日時:2010/01/26 19:02

>ちなみに、test.phpのヘッダーに下記メタタグを


>追加する方法ではなぜか、うまくいきませんでした。

httpのヘッダーを吐いてみてください
<?
header("Cache-Control: no-cache");
ほか・・・
?>
    • good
    • 0
この回答へのお礼

<?
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>

をtest.phpの最初で出力してみましたが、
やはりダメでした。

不思議です。

しかし、ご回答ありがとうございました!

お礼日時:2010/01/26 23:09

キャッシュを無効にするヘッダをたくさん吐いておくことです


Last-Modified
Expires
Pragma
Cache-Control
あたりで調べてみては?
    • good
    • 0
この回答へのお礼

なるほど。HTTPが備えるキャッシュの仕組みを利用を利用できるのですね。わかりました。どうもありがとうございました。

お礼日時:2010/01/26 11:27

ブラウザの設定次第だと思いますが…。

    • good
    • 0
この回答へのお礼

クライアントが多岐にわたり、ブラウザ毎の設定だと対応が難しいケースでの質問になります。しかし、ご回答ありがとうございました。

お礼日時:2010/01/26 11:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!