こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

あるサイトにあるcsvファイルを定期的にダウンロードするには?

定期的に変更されるデータをcsvファイルで提供しているサービスがあります。

サイトに行きダウンロードすることで最新データを取得できるのですが、
自ら見に行くという作業を自動化できないかと考えています。

csvファイルの置き場所が固定されてるとして、phpにて定期的にダウンロードすることは可能でしょうか?

投稿日時 - 2008-09-18 14:13:25

QNo.4338158

すぐに回答ほしいです

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

自分のサーバーで、cron が使えるんだったら、PHP で自作プログラムを作るまでもなく、wget コマンドを使えばいいのではないでしょうか。
http://tech.bayashi.net/svr/doc/wget.html

投稿日時 - 2008-09-18 15:11:01

お礼

wget

いいですね~。知りたかったのはこれです。(^^)/

試しにサーバー上で、wgetと打ち込んでみると、
インストールされてるようです。

使えますね。

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

投稿日時 - 2008-09-18 15:38:15

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

スイマセン、下のソース、少し間違ってたので修正です。
誤)system("$phpexec_path $php_file implode(" ",$params)");
正)system("$phpexec_path $php_file ".implode(" ",$params));

投稿日時 - 2008-09-18 14:47:03

ANo.2

どのような環境なのかがイマイチ理解出来なかったので的外れになるかも知れませんが…。

自鯖である程度自由に出来る場合はcronに登録すれば良いのでは?


ブラウザからアクセスするしかないのであれば…。

単純な方法であれば、ブラウザを起動しっぱなしにして、リフレッシュでリロードを行いダウンロードするという方法なのではないでしょうか?

あるphpファイルからsystem関数を使ってダウンロードを試みるプログラムを起動させるという方法もあると思います。

具体的には
$phpexec_path = "*****"; #phpを実行するプログラムの置かれているパス。たとえばXAMPPの場合c:\xampp\php\php.exeとなる。
$php_file = "*****"; #ダウンロードを試みるphpプログラム
$params = array(引数1,引数2,引数3); #phpプログラムに渡す引数

system("$phpexec_path $php_file implode(" ",$params)");

受け取った側ではsleepを使った無限ループでプログラムを回しつづけ、定期的にダウンロードを行う、というルーチンになるのではないでしょうか。
$php_fileに渡された引数は$argvという配列に格納されていたと思います。
0はプログラムファイル名が格納されるので1番以降を使います。

ただし、色々と課題があると思います。
既に起動済みのプログラムを2重に起動しないようにするルーチンや、停止する為のルーチンなど…。
負荷がかかると思うのでお勧めはしません。

他にも方法はあると思いますが、自分の知識が参考になれば…って事で。

投稿日時 - 2008-09-18 14:44:51

補足

phpでダウンロードが可能となれば、cronは使おうと思ってました。

しかし、肝心なダウンロードの方法がわからず・・・。(^^;

もしかして、かなり単純な方法なのでしょうか?

投稿日時 - 2008-09-18 15:00:14

ANo.1

>>csvファイルの置き場所が固定されてるとして
 その置き場所へアクセスしてその中のファイルの更新日等をチェックして最新とか10日未満とかの条件の元に、DLするPHPを作成するのは「一応」可能です。

 ただ、その「あるサイトのDL画面のhtml」を経由しないと「csvファイルのフォルダ」へはアクセスできない設置の仕方をしていると他のサイトからそこへ直接アクセスしてDLするのは無理です。

投稿日時 - 2008-09-18 14:42:10

補足

そうですね。

URLに直接アクセスするだけで取得できるのか、ログインした上でダウンロードするかでは違ってきますね。

現在、そのサービスにアクセスできる環境がないので、何とも言えませんが、
直接アクセスできるのであれば、どのような方法になるのでしょうか?

No.2,3 の方のような方法になるのでしょうか?

投稿日時 - 2008-09-18 14:56:50

あなたにオススメの質問