php curl get

 1 **
 2  * @desc curl get请求
 3  * @date 2016-11-23 11:46:13
 4  *
 5  * @param $url 请求的url
 6  * @param 请求的头部数据|string $header
 7  * @param 请求的cookie数据|string $cookie
 8  * @param 请求数据错误是否返回获取的数据|bool $source
 9  *
10  * @return bool|mixed
11  *
12  */
13 function curlGet($url, $header = "", $cookie = '', $source = TRUE)
14 {
15     $ch = curl_init($url);
16     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
17     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
18     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
19     curl_setopt($ch, CURLOPT_HEADER, $header); // 设置请求头部header数据
20     if ($cookie) {
21         curl_setopt($ch, CURLOPT_COOKIE, $cookie); // 设置cookie
22     }
23     curl_setopt_array($ch, array(
24         CURLOPT_TIMEOUT => 30, //设置cURL允许执行的最长秒数 30s
25         CURLOPT_CONNECTTIMEOUT => 10, // 在发起连接前等待的时间,如果设置为0,则无限等待。
26     ));
27 
28     //抓取URL并把它传递给浏览器
29     $result = curl_exec($ch);
30     //var_dump($result);
31     // 为false 说明curl错误
32     if($result === false) {
33         $result = 'ERROR(CURL): ['.curl_errno($ch) . ']' . curl_error($ch);
34     }
35 
36     //获取执行后的 http 状态码
37     $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
38     if ($httpCode != 200 && !$source) { // 非200说明异常
39         $result = FALSE;
40     }
41 
42     // 获取执行后的 http 头部Header
43     if (isset($_GET['debug'])) {
44         $httpInfo = curl_getinfo($ch);
45         echo '<pre>' . print_r($httpInfo, true) . '</pre>' . PHP_EOL;
46     }
47     curl_close($ch); // 关闭cURL资源,并且释放系统资源
48 
49 
50 
51     return $result;
52 }

 

posted @ 2016-11-23 14:12  cloudshadow  阅读(193)  评论(0编辑  收藏  举报