• ベストアンサー

PHPでの別のサーバーのテキストファイルの読み込み

PHPに詳しい方が居られたら教えてください。 $file="http://www.sample.com/test.txt" $fp=fopen($file,"r"); (処理) close($fp); というようにして、別のサイトにおいてあるファイルを 読み込みんで処理したい場合、 "test.txt"の内容を変えても、変更前の内容を読み込ん でしまいます。 パソコンにキャッシュされているファイルにアクセスして いると思うのですが、 "test.txt"の内容を変えたら、確実に変更後の内容を 読み込むようにする方法はありませんでしょうか? どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

file関数で出来るかはわかりませんが、 以下のような方法でだます方法もあります。 URLに ローカルタイムなど 常に変化する変数などを追加しておくと、 毎回 読み込んでくれるはずです。 $a = time(); $file="​http://www.sample.com/test.txt"​ . "?" . $a;

neo1124
質問者

お礼

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" /> 上記のような構成の場合、ヘッダー情報を操作して、 キャッシュしなくする方法があれば、 引き続きご教授いただければ幸いです。 もう少しご回答を受け付けますので、 ご存知の方がが居られましたら よろしくお願いいたします。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

>ちなみに、test.phpのヘッダーに下記メタタグを >追加する方法ではなぜか、うまくいきませんでした。 httpのヘッダーを吐いてみてください <? header("Cache-Control: no-cache"); ほか・・・ ?>

neo1124
質問者

お礼

<? header("Cache-Control: no-cache"); header("Pragma: no-cache"); ?> をtest.phpの最初で出力してみましたが、 やはりダメでした。 不思議です。 しかし、ご回答ありがとうございました!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

キャッシュを無効にするヘッダをたくさん吐いておくことです Last-Modified Expires Pragma Cache-Control あたりで調べてみては?

neo1124
質問者

お礼

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

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

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

neo1124
質問者

お礼

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