云梦编程网

当前位置:首页 > PHP教程 >

php获取远程图片并把它保存到本地

作者:佚名 时间:2024-08-25 09:22:01 阅读:(4)

在现代网页开发中,处理和存储远程资源,如图片,常常是必不可少的任务。使用PHP语言,我们可以高效地从远程服务器获取图片并将其保存到本地文件系统。接下来云梦编程网为大家介绍如何利 PHP的内置函数和cURL库,从远程服务器下载图片并保存到本地。有需要的小伙伴可以参考一下:

php获取远程图片并把它保存到本地

1、程序方法:

/*
* $url 图片url
* $save_dir 图片保存目录
* $filename 文件名
* $type 获取图片的方式
*/
function getNewImage($url,$save_dir='up/image/',$filename='',$type=1){
    $url_path = parse_url($url);
    $filename = trim($filename);
    if(trim($filename)==''){//保存文件名
        $filename = basename($url);
        $filename = trim($filename);
        $houzuiA = pathinfo($filename);
        if(!isset($houzuiA['extension']) || empty($houzuiA['extension'])){
            $filename = time().rand(100,999).'.jpg';
        }else{
            $filename = time().rand(100,999).'.'.$houzuiA['extension'];
        }
    }
    //创建保存目录
    $save_dir = $save_dir.date('Ymd').'/';
    if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
        return $url;
    }
    //获取远程文件所采用的方法
    if($type){
        $ch=curl_init();
        $timeout=5;
        curl_setopt($ch,CURLOPT_URL,$url);
        //curl_setopt ($ch, CURLOPT_REFERER, 'http://'.$url_path['host']);//这里为空也行,为他的主域名也可
        curl_setopt ($ch, CURLOPT_REFERER, '');//这里为空也行,为他的主域名也可
        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);
    //文件大小
    if(($fp2=@fopen(trim($save_dir.$filename),'a')) !== false){
        fwrite($fp2, $img);
        fclose($fp2);
    }
    unset($img,$url);
    return '/'.$save_dir.$filename;
}

2、注意事项:

    (1)、文件权限:确保PHP有权限写入到指定的本地路径。如果路径不存在,确保PHP有权限创建目录。

    (2)、错误处理:在实际应用中,应该对网络错误、文件系统权限等情况进行更全面的错误处理。

    (3)、SSL/TLS 证书:在使用cURL下载HTTPS资源时,确保SSL/TLS证书的验证设置正确。如果遇到证书错误,建议配置正确的证书文件而不是禁用验证。

    (4)、网络环境:确保服务器能够访问到指定的远程 URL,网络连接正常。


以上就是云梦编程网为大家介绍的关于PHP下载远程图片到本地方法的全部内容了,了解更多相关文章请关注吾爱编程网!

最新文章

热门文章