PHP development skills (8)-Code details of CURL request

黄舟
Release: 2023-03-06 13:50:01
Original
1617 people have browsed it

There are many ways to access remote URLs in PHP, such as using file_get_contents to obtain content; using fopen to open ur to obtain content; using fsockopen function to open url to obtain content, etc. However, the most recommended method is to use CURL for access.

<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/12/12 0008 
 * Time: 下午 2:17 
 * Project: PHP开发小技巧 
 * Power: CURL请求 
 * ======================================= 
 */  
  
/** 
 * CURL请求 
 * @param $url 请求url地址 
 * @param $method 请求方法 get post 
 * @param null $postfields post数据数组 
 * @param array $headers 请求header信息 
 * @param bool|false $debug 调试开启 默认false 
 * @return mixed 
 */  
function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false)  
{  
    $method = strtoupper($method);  
    $ci = curl_init();  
    /* Curl settings */  
    curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);  
    curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");  
    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */  
    curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */  
    curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);  
    switch ($method) {  
        case "POST":  
            curl_setopt($ci, CURLOPT_POST, true);  
            if (!empty($postfields)) {  
                $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;  
                curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);  
            }  
            break;  
        default:  
            curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */  
            break;  
    }  
    $ssl = preg_match(&#39;/^https:\/\//i&#39;, $url) ? TRUE : FALSE;  
    curl_setopt($ci, CURLOPT_URL, $url);  
    if ($ssl) {  
        curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts  
        curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在  
    }  
    //curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/  
    curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);  
    curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/  
    curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);  
    curl_setopt($ci, CURLINFO_HEADER_OUT, true);  
    /*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */  
    $response = curl_exec($ci);  
    $requestinfo = curl_getinfo($ci);  
    $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);  
    if ($debug) {  
        echo "=====post data======\r\n";  
        var_dump($postfields);  
        echo "=====info===== \r\n";  
        print_r($requestinfo);  
        echo "=====response=====\r\n";  
        print_r($response);  
    }  
    curl_close($ci);  
    return $response;  
    //return array($http_code, $response,$requestinfo);  
}  
  
  
$url = "http://zhutuan.chuangkeweilai.cn/jiancai/admin/index.php?act=cache&op=kppwcache";  
  
httpRequest($url, $method, $postfields = null, $headers = array(), $debug = true)  
  
?>
Copy after login

Related articles:

The url parameter problem when php uses curl to initiate a get request

Using curl to send requests in PHP ( GET request and POST request)

Detailed examples of precautions for PHP to use the curl function to send Post requests

The above is the detailed content of PHP development skills (8)-Code details of CURL request. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!