php CURL 发送请求封装

cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件到FTP服务器等等。
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。

1、PHP建立CURL请求的基本步骤

①:初始化

1 curl_init()

②:设置属性

1 curl_setopt().有一长串cURL参数可供设置,它们能指定URL请求的各个细节。

③:执行并获取结果

1 curl_exec()

④:释放句柄

1 curl_close()

2、封装:

 1   public function http_query($url, $get = null, $post = null)
 2    {
 3         if (isset($get)) {
 4             if (substr_count($url, '?') > 0) {
 5                 $url .= "&" . http_build_query($get);
 6             } else {
 7                 $url .= "?" . http_build_query($get);
 8             }
 9         }
10         // 初始化一个cURL会话
11         $ch = curl_init($url);
12         if (isset($post)) {
13             curl_setopt($ch, CURLOPT_POST, TRUE);         #开启post
14             curl_setopt($ch, CURLOPT_POSTFIELDS, $post);  #post数据
15         }
16         curl_setopt($ch, CURLOPT_HEADER, 0);            #是否需要头部信息(否)
17         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    #如果成功只将结果返回,不自动输出任何内容。
18         curl_setopt($ch, CURLOPT_TIMEOUT, 5);           #设置允许执行的最长秒数。
19         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);    #在发起连接前等待的时间,如果设置为0,则无限等待。
20         //忽略证书
21         if (substr($url, 0, 5) == 'https') {
22             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
23             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
24         }
25         $curl_result = curl_exec($ch);
26         if ($curl_result) {
27             $data = $curl_result;
28         } else {
29             $data = curl_error($ch);
30         }
31         curl_close($ch);    #关闭cURL会话
32         return $data;
33     }

猜你喜欢

转载自www.cnblogs.com/daixin/p/12978377.html
今日推荐