一、什么是CURL?
CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。使用PHP的CURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。
二:CURL常用函数
curl_init :初始化一个curl会话
curl_close : 关闭一个curl会话
curl_copy_handle : 拷贝一个curl连接资源的所有内容和参数
curl_errno : 返回一个包含当前会话错误信息的数字编号
curl_error : 返回一个包含当前会话错误信息的字符串
curl_exec : 执行一个curl会话
curl_getinfo : 获取一个curl连接资源句柄的信息
curl_multi_add_handle : 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close : 关闭一个批处理句柄资源
curl_multi_exec : 解析一个curl批处理句柄
curl_multi_getcontent : 返回获取的输出的文本流
curl_multi_info_read : 获取当前解析的curl的相关传输信息
curl_multi_init : 初始化一个curl批处理句柄资源
curl_multi_remove_handle : 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select : Get all the sockets associated with the cURL extension, which can then be “selected”
curl_setopt_array : 以数组的形式为一个curl设置会话参数
curl_setopt : 为一个curl设置会话参数
curl_version : 获取curl相关的版本信息
三:常用函数具体说明
curl_init():初始化一个curl会话
curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/");设置要抓取的url
curl_setopt($curl,CURLOPT_HEADER,0);设置头文件的信息作为数据流输出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);设置获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($curl,CURLOPT_POST,1);设置post方式提交
curl_setopt($curl,CURLOPT_POSTFIELDS,$post_data);设置post数据
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);禁止服务器进行证书认证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);不检查证书
curl_exec($curl);执行一个curl会话并返回结果
curl_close($curl);关闭一个curl会话
四:CURL GET,POST实例
这两天经过查阅关于curl的文章,个人认为curl get的作用更多的是用来抓取页面,不管是文章也好,图片也罢。而post,我认为它的作用更趋向于模拟表单提交。这是我个人的看法,如果有错误,欢迎指正。下面是get和post的两个实例。
1:GET:这是一个简单的抓取页面的例子
2:POST:这是post模拟表单提交的例子
五:下面的例子是用curl和file_get_contents两种方法抓取图片的例子,在我的github上均有demo,请看链接
https://github.com/131468yanglijun/php/tree/master/image_grab_demo
好了,大概就是这些,很多函数我也没有具体用过,摘抄来。以后用的时候可以参考一下。