抓取远程图片到本地,你会用什么函数?

第一个方法用file_get_contents($url):

然后1.gif是你要保存的相对路径,你也可以写成绝对路径。

第二个方法用自己写的原生代码:

解释一下代码吧:

ob_start(); 是打开输出缓冲

readfile($url);读入一个文件并写入输出缓冲

ob_get_contents();返回输出缓冲的内容

ob_end_clean();清除输出缓冲

下面的fopen、fwrite、fclose就大家都懂啦。

接下来要了解到是fsockopen()函数:

fsockopen — 打开一个网络连接或者一个Unix套接字连接。

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

例子

hostname是url,port是端口,errno一个存放错误编号的变量,errstr是一个存放错误信息字符串的变量和超时等待时间。

组成url的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query),例:http://www.baidu.com/img/bd_logo.png

常见的HTTP状态码

代码

含义

200

OK

204

NO Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

408

Time out

5**

Server error

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2017-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java大联盟

MongoDB常用操作命令

上一篇文章中我们已经成功搭建起来MongoDB服务器,搭建MongoDB服务器。今天继续学习MongoDB常用的命令。

522
来自专栏企鹅号快讯

Python编写渗透工具学习笔记二

1 用pxssh暴力破解ssh密码 因为默认情况下只有linux有ssh服务,所以此脚本只适用于在linux下使用 靶机 10.10.10.128 kali6...

1746
来自专栏python3

python shelve模块

shelve模块是一个简单的k-value数据,将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。

671
来自专栏博客园

MongoDB的CURD命令

   在MongDB服务成功启动的情况下,打开cmd,在MongDB的bin文件目录下执行MongDB命令

964
来自专栏王硕

原 进程小程序

3408
来自专栏前端儿

Web 后端--PHP 与数据库的交互

         用 PHP  操作 MySQL ,实现数据的交换,还要多练练....

471
来自专栏Linyb极客之路

工作流引擎之activiti流程定义

ProcessDefinition(流程定义)就是一个流程的步骤说明,比如我们接下来要说的这个流程,申请人王三发起提交申请,李四作为部门经理进行审批,审...

1053
来自专栏蓝天

super-smack

我有个办法,不过不是用LR,是用super-smack,如果只对数据库进行抗压力测试,应该管用。 Super-smack 现在是1.3版,源码下载地址如下: h...

571
来自专栏李家的小酒馆

复用$.ajax方式传递参数错误处理

2. 前台拼接方式不和普通post一样,要和使用get请求的时候拼接的方式一致,如下。

511
来自专栏行者常至

Struts1 页面提交到ActionForm,form为null

612

扫描关注云+社区