PHPプログラムに関する各種メモ書き

PHPでURLからローカルにファイルをダウンロードする

PHPでURLからローカルにファイルをダウンロードするには以下のようにします。

function file_download($url, $dir='.', $save_base_name='' ){
    if ( ! is_dir($dir) ){ die("ディレクトリ({$dir})が存在しません。");}
    $dir = preg_replace("{/$}","",$dir);
    $p = pathinfo($url);
    $local_filename = '';
    if ( $save_base_name ){ $local_filename = "{$dir}/{$save_base_name}.{$p['extension']}"; }
    else{ $local_filename = "{$dir}/{$p['filename']}.{$p['extension']}"; }
    if ( is_file( $local_filename ) ){ print "すでにファイル({$local_filename})が存在します<br>\n";}
    $tmp = file_get_contents($url);
    if (! $tmp){ die("URL({$url})からダウンロードできませんでした。");}
    $fp = fopen($local_filename, 'w');
    fwrite($fp, $tmp);
    fclose($fp);
}

実行は

// ■1. ファイル名「hogehoge.jpg」でディレクトリ「images」に保存する場合
file_download('http://www.xxx.xxx.jp/hogehoge.jpg', 'images');

// ■2. ファイル名「0001.jpg」でディレクトリ「images」に保存する場合
file_download('http://www.xxx.xxx.jp/hogehoge.jpg', 'images', '0001');

関連エントリー

No.825
01/19 16:51

edit

ファイル