[PHP-users 25459] Re: 任意のHTTPサーバのファイルをコマンドライン上からダウンロードしたい

kitsune.info webmaster @ kitsune.info
2005年 4月 25日 (月) 20:13:29 JST


kitsune.info です。
環境を選ぶのであまりよい回答ではないと思いますが、近い例を書いておきます。

On Sun, 24 Apr 2005 13:53:22 +0900
"Iso, Toshitaka" <toshitaka.iso @ hp.com> wrote:

> 任意のHTTPサーバ上にあるファイル(http://www.hoge.com/20050424.exe)を
> IEからではなく、コマンドライン上からダウンロードするPHPスクリプトを作成しているのですが、
> 画面上にバイナリファイルの中身が標準出力されてしまい、保存されません。

(snip)

> 希望する動きとしては、http://www.hoge.com/20050424.exeにアクセスして、
> 20050424.exeをローカルサーバ(PHPを実行したサーバ)のディレクトリに保存
> するという動きです。

UNIX サーバでの話ですが、exec() で wget を呼び出してサーバ引っ越し
プログラムを作ったことがあります。
たしかこんな感じだったかと。

===== code start =====

$command = "wget -O $filename $path_file";

if (! is_file($filename)) { // 保存先のファイルが存在するかチェック
    exec($command, $result, $status);
    
    switch ($status) { // wget 実行の可否で分岐
    case 0:
        echo "$path_file を $filename として保存しています...";
        break;
    default:
        echo "$path_file の保存に失敗しました。";
    }
} else {
    echo "$filename はすでに存在します。";
}

===== code end =====

.exe とあることから Windows サーバっぽいですが、その場合は wget が
ありませんのでこのままでは動きません。
win32 用の wget があるので、それをインストールしてあれば別ですが。

# そうなると wget のライセンス(たぶん GPL)に合わせる必要があるかも。


================================== 
http://kitsune.info/
kitsune.info <webmaster @ kitsune.info>
==================================



PHP-users メーリングリストの案内