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

ファイル