PHP-Entwicklungsfähigkeiten (8) – Codedetails der CURL-Anfrage

黄舟
Freigeben: 2023-03-06 13:50:01
Original
1689 Leute haben es durchsucht

Es gibt viele Möglichkeiten, auf Remote-URLs in PHP zuzugreifen, z. B. die Verwendung von „file_get_contents“, um Inhalte abzurufen; die Verwendung von „fopen“, um „ur“ zu öffnen, um Inhalte abzurufen; Die am meisten empfohlene Methode ist jedoch die Verwendung von CURL für den Zugriff.

<?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)  
  
?>
Nach dem Login kopieren

Verwandte Artikel:

Das URL-Parameterproblem, wenn PHP Curl verwendet, um eine Get-Anfrage zu initiieren

Curl zum Senden verwenden in PHP-Anfragen (GET-Anfragen und POST-Anfragen)

Detaillierte Beispiele für Vorsichtsmaßnahmen für die Verwendung der Curl-Funktion zum Senden von Post-Anfragen in PHP

Das obige ist der detaillierte Inhalt vonPHP-Entwicklungsfähigkeiten (8) – Codedetails der CURL-Anfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage