Heim  >  Artikel  >  Backend-Entwicklung  >  PHP verwendet CURL, um Beispiele für GET- und POST-Anforderungsschritte zu implementieren

PHP verwendet CURL, um Beispiele für GET- und POST-Anforderungsschritte zu implementieren

韦小宝
韦小宝Original
2018-02-24 09:43:092893Durchsuche

CURL ist ein Tool, das URL-Syntax zum Übertragen von Dateien und Daten verwendet. Es unterstützt viele Protokolle wie HTTP, FTP, TELNET usw. Das Beste daran ist, dass PHP auch die CURL-Bibliothek unterstützt. Verwenden Sie die CURL-Bibliothek von PHP, um Webseiten einfach und effektiv zu crawlen. Sie müssen lediglich ein Skript ausführen und die von Ihnen gecrawlten Webseiten analysieren. Anschließend können Sie die gewünschten Daten programmgesteuert abrufen. Ganz gleich, ob Sie Teildaten aus einem Link abrufen, eine XML-Datei in eine Datenbank importieren oder einfach nur den Inhalt einer Webseite abrufen möchten: CURL ist eine leistungsstarke PHP-Bibliothek.

Grundlegende Schritte zum Einrichten einer CURL-Anfrage in PHP

①: Initialisierung

curl_init()

②: Eigenschaften festlegen

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

③: Ausführen und das Ergebnis erhalten

curl_exec()

④: Den Griff loslassen

curl_close()

CURL Implementieren Sie GET und POST

①: GET-Methode zum Implementieren von

//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);

②: POST-Methode zum Implementieren von

//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
    "username" => "coder",
    "password" => "12345"
);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
/执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);

③: Wenn die erhaltenen Daten im JSON-Format vorliegen, verwenden Sie die Funktion json_decode, um sie in ein Array zu interpretieren.

$output_array = json_decode($data,true); //Wenn der zweite Parameter wahr ist, wird er in Array-Form konvertiert. Wenn es nicht ausgefüllt ist, liegt es in Form eines Objekts vor

Wenn Sie zum Parsen json_decode($data) verwenden, erhalten Sie Objekttypdaten.

Eine gekapselte Funktion

 //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
function curl_request($url,$post='',$cookie='', $returnCookie=0){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
    curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
        if($post) {
             curl_setopt($curl, CURLOPT_POST, 1);
             curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
         }
        if($cookie) {
             curl_setopt($curl, CURLOPT_COOKIE, $cookie);
         }
    curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
        if (curl_errno($curl)) {
             return curl_error($curl);
        }
         curl_close($curl);
        if($returnCookie){
            list($header, $body) = explode("\r\n\r\n", $data, 2);
            preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
            $info['cookie']  = substr($matches[1][0], 1);
            $info['content'] = $body;
            return $info;
        }else{
             return $data;
    }
}

Obwohl diese beiden Funktionen nicht schwierig sind, sind sie dennoch erlernbar. Denn diese beiden Funktionen müssen beim Erstellen von Schnittstellen oder beim Aufrufen von Schnittstellen verwendet werden.

Empfohlene verwandte Artikel:

So crawlen Sie Tmall- und Taobao-Produktdaten mit PHP

Das obige ist der detaillierte Inhalt vonPHP verwendet CURL, um Beispiele für GET- und POST-Anforderungsschritte zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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