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