PHP下载远程图片到本地

header('Content-type:text/html;charset=gbk');
set_time_limit(0);
$con = mysql_connect(“链接地址”,“用户名”,“密码”);
if (!$con){
die('Could not connect: ' . mysql_error());
}
echo “Connect Sucess”;
mysql_select_db(“ali_zhibo”, $con);
mysql_query(“set names gbk;“);

$result = mysql_query(“SELECT distinct id,name,imgpath FROM table1 where imgpath != ''“);
while($row = mysql_fetch_array($result))
{
$pos = strpos($row['imgpath'], 'http://');
if($pos !== false){

$url = $row['imgpath'];

}else{

$url = 'http://xxxxx/'.$row['imgpath'];

}
$key = $row['id'].'-'.$row['name'];
$arr[$key] = $url;
}
mysql_close($con);

echo '总数:'.count($arr);

foreach ($arr as $key => $value) {

 $filename = $key.'.jpg';

getImage($value,'picture6',$filename,0);
}
var_dump($arr);

function getImage($url,$save_dir='',$filename='',$type=0){

if(trim($url)==''){
    return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
    $save_dir='./';
}
if(trim($filename)==''){//保存文件名
    $ext=strrchr($url,'.');
    if($ext!='.gif'&&$ext!='.jpg'){
        return array('file_name'=>'','save_path'=>'','error'=>3);
    }
    $filename=time().$ext;
}
if(0!==strrpos($save_dir,'/')){
    $save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
    return array('file_name'=>'','save_path'=>'','error'=>5);
}
//获取远程文件所采用的方法 
if($type){
    $ch=curl_init();
    $timeout=5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $img=curl_exec($ch);
    curl_close($ch);
}else{
    ob_start(); 
    readfile($url);
    $img=ob_get_contents(); 
    ob_end_clean(); 
}
//$size=strlen($img);
//文件大小 
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);

}

你可能感兴趣的:(PHP下载远程图片到本地)