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');