迅闻网
让更多人看到你

php下载图片的三种方式(php怎么解决跨域)

  php下载图片的三种方式

下面来讲利用PHP下载网络图片常用的三个办法。当然,这三个办法都不是全能的,有时候会由于网络问题,或许网络图片的权限问题(大站一般都有防盗链)导致下载失败。
一同来看看吧,实践工作中经常用到。
办法一
优点:简略。
缺点:效率相对较低。
该办法主要用到的函数有两个file_get_contents以及file_put_contents这种办法十分简略,浅显的讲便是先get到图片内容,然后put到文件中。
代码如下:
办法二
个人用的最多的办法。
缺点:略微复杂点,要把握curl的用法,需要知道curl一些选项的意义。
优点:效率高,很简单支撑https;
curl十分强壮,也是phper必须把握的技术,所以建议大家运用该办法。该办法的思路是,运用curl工具获取长途图片的信息,然后将该信息保存到本地的文件中。这儿我没有对curl_exec的结果做校验了,偷个懒。
关于curl的用法,如果有想深入了解的,能够在中搜索curl。
$imgFile=’https://***.***.***/uploads/20200121/bd873d80da430f8b74ef1ee751945595.png’;
functiondown_img($imgUrl)
{
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$imgUrl);//恳求地址
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//不直接输出信息
//能够拜访https恳求
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
//履行curl并获取数据
$results=curl_exec($ch);
$imgName=trim(strrchr($imgUrl,’/’),’/’);
$fp=fopen($imgName,’w’);
fwrite($fp,$results);
//履行完毕后,记得关闭资源
curl_close($ch);
}
down_img($imgFile);
办法三
这种办法也很简略,用到的是php的文件管理知识。首先创立两个文件句柄,一个用于读取长途图片的二进制信息,另一个用于保存图片信息的。
总结
个人工作中主要用到了下列的第一种及第二种办法。另外多说一句,图片下载倒没什么联系,但是下载的图片怎么用就要注意了。用的欠好,就可能发生侵权问题了哦。

 

php

php怎么解决跨域

本文通过设置Access-Control-Allow-Origin来实现跨域。
例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。
如果直接使用ajax拜访,会有以下错误:
1XMLHttpRequestcannotloadhttp://server.runoob.com/server.php.No‘Access-Control-Allow-Origin‘headerispresentontherequestedresource.Origin‘http://client.runoob.com‘isthereforenotallowedaccess.
1、答应单个域名拜访
指定某域名(http://client.runoob.com)跨域拜访,则只需在http://server.runoob.com/server.php文件头部增加如下代码:
1header(‘Access-Control-Allow-Origin:http://client.runoob.com‘);
2、答应多个域名拜访
指定多个域名(http://client1.runoob.com、http://client2.runoob.com等)跨域拜访,则只需在http://server.runoob.com/server.php文件头部增加如下代码:
1$origin=isset($_SERVER[‘HTTP_ORIGIN‘])?$_SERVER[‘HTTP_ORIGIN‘]:‘‘;2
3$allow_origin=array(4‘http://client1.runoob.com‘,
5‘http://client2.runoob.com‘
6);7
8if(in_array($origin,$allow_origin)){9header(‘Access-Control-Allow-Origin:‘.$origin);10}
3、答应一切域名拜访
答应一切域名拜访则只需在http://server.runoob.com/server.php文件头部增加如下代码:
1header(‘Access-Control-Allow-Origin:*‘);

未经允许不得转载:迅闻网 » php下载图片的三种方式(php怎么解决跨域)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页