dポイントプレゼントキャンペーン実施中!

csvファイルをPHPで取り込み使っています。
file()関数を使っていますが
これでは1000回アクセスがあれば1000回もcsvファイルを
ファイル元のサーバーに見に行くことになり
相手に負担や迷惑になるような気がしてきました。

相手様のcsvファイルは1時間に一度しか更新されません。
一時間に一度csvを見に行き自分のレンタルサーバーに保存など
相手に迷惑のかからない方法はないでしょうか?

1000アクセスなら相手様に負荷もあまりないとは思うのですが
一度自分のサーバーに取り込んだほうが効率が良いように思えてきました。
どなた様か知恵を貸していただけると幸いです。

こちらの環境はPHP4.2レンタルサーバーNTTスイート2です。
相手様はあるURLにカンマ区切りの情報を提供しておられます。

宜しくお願いいたします。

A 回答 (5件)

「相手」と言うのは別のサーバということでしょうか。


その場合は当然自分のサーバにデータを置いておいたほうがアクセスは早いでしょう。
一時間に一度その「相手」からCSVファイルをDLして自分のサーバに置いておくほうがいいでしょう。

「相手」がどのようなものかが分からないので負担や迷惑はわかりません。

この回答への補足

ありがとうございます。
「相手」はhttp://~.csvと続く、別のサーバです。

相手先に新しいデータを取りに行くことはPHPで自動的に出来るのでしょうか。
今の私には、そこまでスキルがなく、
もう少し補足をお願いできるとありがたいです。

補足日時:2006/07/04 12:33
    • good
    • 0

#3>相手先に新しいデータを取りに行くことはPHPで自動的に出来るのでしょうか。


サーバーの現在時刻は、date 関数で得ることができます。
http://jp2.php.net/manual/ja/function.date.php
前回ダウンロードしたファイルの更新時間(自サーバーに書き込みした時間)は、
filemtime 関数
http://jp2.php.net/manual/ja/function.filemtime. …
で取得できますから、
前回取得してからどれくらいの時間が経過しているのかがわかりますから、1時間以上経過していれば、新しいファイルを取りにいけばいいでしょう。
PHPは、ページが表示される時に起動されるので、全く自動的に1時間毎というようなワケにはいかないので、ページ起動時にそのような処理をすればよいと思います。
    • good
    • 0
この回答へのお礼

御礼が遅れてすみません。

勉強になりました!
こんな関数があったんですね。
ありがとうございました。

お礼日時:2006/08/05 00:21

必要ファイルをとりに行く仕組みがあるなら


取りに行ったときにコピーをしておけば
再利用性はあがります。
ただ、常に最新のデータがひつようとなると、
コピーするタイミングというのが難しいですね。
結局短いスパンでプルする必要があり、結果として
ネットワークへの負担は増大してしまいます。

そうなるとファイルが更新されたタイミング
でファイルを置いてある側のサーバーから、プッシュ
してもらう方法がベターだと思います

この回答への補足

ありがとうございます。
再利用できる点もメリットですね!
是非、PHPで自動的に取り込んでいけたらと思っています。
(相手様のサーバからプッシュというのは難しいです、、)

ただ、今はまだ私にはスキルが足りず、
どうすればそれが行えるのか想像がつきません。

もう少し補足をお願いできるとありがたいです。

補足日時:2006/07/04 12:37
    • good
    • 0

自分のサーバーにダウンロードしておきそれを使うのが良いと思います。


ダウンロードしたファイルの日付・時間を確認し1時間以上経過していれば、新しいファイルをダウンロードするようにすればいいんじゃないかと思います。

この回答への補足

回答ありがとうございます。

相手先に新しいデータを取りに行くことはPHPで自動的に出来るのでしょうか。
今の私には、そこまでスキルがなく自分で勉強したいのですが時間が在りません。。
もう少し補足をお願いできるとありがたいです。

補足日時:2006/07/04 12:37
    • good
    • 0

アクセスした時間の時とファイル更新時間の時を比べてアクセス時>更新時なら相手先に新しいデータを取りに行って自分のサーバに保存というのはどうでしょう。

この回答への補足

ありがとうございます。
php504さんのおっしゃる方法がとても効率がいいとおもいます。

相手先に新しいデータを取りに行くことはPHPで自動的に出来るのでしょうか。
今の私には、そこまでスキルがなく、
もう少し補足をお願いできるとありがたいです。

補足日時:2006/07/04 12:28
    • good
    • 0

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