使用PHP如何下载远程图片

介绍

使用PHP如何下载远程图片?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

,代码如下:


& lt; ? PHP
/* *
, * PHP下载远程图片到本地
, *
, * @param $ url字符串远程文件地址
, * @param $文件名字符串保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
, * @param $文件类型数组允许的文件类型
, *目录名的字符串(@param美元文件保存的路径(路径其余部分根据时间系统自动生成)
, * @param $类型int远程获取文件的方式
, * @return json返回文件名,文件的保存路径
, * @author blog.snsgou.com
, */
函数getImage (url,文件名美元=& # 39;& # 39;,目录名美元$文件类型=数组(& # 39;jpg # 39; & # 39; gif # 39;),类型=1美元)
{
,如果($ url==& # 39; & # 39;)
, {
,,返回false。
,}

,//获取文件原文件名
, $ defaultFileName=basename ($ url);

,//获取文件类型
, $后缀=substr (strrchr ($ url, & # 39; # 39;公司),1),
,如果(!in_array(后缀,文件类型)美元)
, {
,,返回false。
,}

,//设置保存后的文件名
,文件名=文件名美元==& # 39;& # 39;? 时间()。兰德(0,9)。& # 39;强生# 39;。后缀:defaultFileName美元;

,//获取远程文件资源
,如果美元(类型)
, {
,, $ ch=curl_init ();
,,超时=15美元;//超时时间
,, curl_setopt ($ ch CURLOPT_URL $ url);
,, curl_setopt (ch美元CURLOPT_RETURNTRANSFER 1);
,, curl_setopt ($ ch CURLOPT_CONNECTTIMEOUT超时美元);
,, $ file=curl_exec (ch);
,, curl_close (ch);
,}
,
其他,{
,, ob_start ();
,, readfile ($ url);
,, $ file=ob_get_contents ();
,, ob_end_clean ();
,}

,//设置文件保存路径
,目录名=美元目录名。& # 39;/& # 39;。日期(& # 39;y # 39;时间())。& # 39;/& # 39;。日期(& # 39;猴子# 39;、时间())。& # 39;/& # 39;。日期(& # 39;d # 39;时间())。& # 39;/& # 39;;
,如果(! file_exists(目录名)美元)
, {
,, mkdir(目录名0777美元,真);
,}

,//保存文件
, $ res=fopen($目录名。文件名,美元& # 39;一个# 39;);
,写入文件(res,文件)美元;
,文件关闭(res);

,返回“{& # 39;文件名# 39;:文件名,美元& # 39;saveDir& # 39;: $目录名}“;
}


//举例
//返回:{& # 39;文件名# 39;:13668030896. jpg, & # 39; saveDir& # 39;:/www/测试/img/2013/04/24/}
回声getImage (& # 39; https://cache.yisu.com/upload/information/20201209/266/42144.jpg& # 39; & # 39; & # 39;, & # 39; d:/PHP/数据# 39;,数组(& # 39;jpg # 39; & # 39; gif # 39;), 1),

关于使用PHP如何下载远程图片问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

使用PHP如何下载远程图片