Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie Curl zum Senden von Anfragen in PHP

So verwenden Sie Curl zum Senden von Anfragen in PHP

墨辰丷
墨辰丷Original
2018-05-25 16:59:541724Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Curl zum Senden von Anfragen (GET-Anfragen und POST-Anfragen) in PHP vorgestellt. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf

Der grundlegende Prozess des Sendens einer Anfrage mit CURL

Die Verwendung der PHP-Erweiterung von CURL zum Abschließen des Sendens einer HTTP-Anfrage umfasst im Allgemeinen die folgenden Schritte :

1. Initialisieren Sie das Verbindungshandle.

3 🎜>

4. Geben Sie das VURL-Verbindungshandle frei.


Das folgende Programmfragment ist ein typischer Prozess zum Senden von HTTP mit CURL

// 1. 初始化
 $ch = curl_init();
 // 2. 设置选项,包括URL
 curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net");
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 curl_setopt($ch,CURLOPT_HEADER,0);
 // 3. 执行并获取HTML文档内容
 $output = curl_exec($ch);
 if($output === FALSE ){
 echo "CURL Error:".curl_error($ch);
 }
 // 4. 释放curl句柄
 curl_close($ch);

Im obigen Code werden vier Funktionen verwendet


curl_init() und curl_close() dienen zum Initialisieren bzw. Schließen der CURL-Verbindung, was beide relativ einfach ist.

  • curl_exec() führt eine CURL-Anfrage aus. Wenn kein Fehler auftritt, gibt die Funktion die von der entsprechenden URL zurückgegebenen Daten zurück und gibt die Zufriedenheit als Zeichenfolge an FALSCH. Es ist zu beachten, dass das Gleichheitszeichen verwendet wird, um zu bestimmen, ob die Ausgabe FALSE ist. Dies dient der Unterscheidung zwischen der Rückgabe einer leeren Zeichenfolge und einem Fehler.

  • Die wichtigste Funktion in der CURL-Funktionsbibliothek ist curl_setopt(), die HTTP-Anfragen anpassen kann, indem sie von der CURL-Funktionsbibliothek definierte Optionen festlegt. Im obigen Codeausschnitt werden drei wichtige Optionen verwendet:

  • ①CURLOPT_URL gibt die angeforderte URL an;

②CURLOPT_RETURNTRANSFER wird auf 1 gesetzt, um die Funktion „curl_exec“ anzugeben Später ausgeführt. Die Rückgabe ist die Rückgabezeichenfolge der URL, anstatt die Rückgabezeichenfolge an die Standardausgabe weiterzuleiten und TRUE zurückzugeben. ③CURLLOPT_HEADER wird auf 0 gesetzt, um anzuzeigen, dass keine HTTP-Header-Informationen zurückgegeben werden .


CURL bietet viele Optionen. Sie können auf der offiziellen Website von PHP (http://www.php.net/manual/en/function.curl-setopt.php) eine Liste aller von unterstützten Optionen anzeigen CURL .


Rufen Sie die Ausgabeinformationen der CURL-Anfrage ab

Nachdem die Funktion „curl_exec()“ ausgeführt wurde, können Sie die Funktion „curl_getinfo()“ verwenden Erhalten Sie die relevante Ausgabe der CURL-Anfrageinformationen. Der Beispielcode lautet wie folgt:

curl_exec($ch);
$info = curl_getinfo($sh);
echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

Im obigen Code gibt curl_getinfo ein assoziatives Array zurück, das Folgendes enthält Daten:

URL: Netzwerkadresse.

content_type: Inhaltskodierung.
  • http_code: HTTP-Statuscode.
  • header_size: Die Größe des Headers.
  • request_size: Die Größe der Anfrage.
  • filetime: die Zeit, zu der die Datei erstellt wurde.
  • ssl_verify_result: SSL-Verifizierungsergebnis.
  • redirect_count: Sprunganzahl.
  • total_time: insgesamt benötigte Zeit.
  • namelookup_time: DNS-Abfragezeit.
  • connect_time: Wartezeit für die Verbindung.
  • pretransfer_time: Vorbereitungszeit vor dem Transfer.
  • size_uplpad: Die Größe der hochgeladenen Daten.
  • size_download: Die Größe der heruntergeladenen Daten.
  • speed_download: Download-Geschwindigkeit.
  • speed_upload: Upload-Geschwindigkeit.
  • download_content_length: Die Länge des Download-Inhalts.
  • upload_content_length: Die Länge des hochgeladenen Inhalts.
  • starttransfer_time: Zeitplan für den Beginn des Transfers.
  • redirect_time: Umleitungszeit.
  • Die Funktion „curl_getinfo()“ verfügt außerdem über einen optionalen Parameter $opt, über den Sie einige Konstanten festlegen können, die dem Feld oben entsprechen. Wenn der zweite Parameter festgelegt ist, wird nur zurückgegeben angegebenen Informationen. Wenn $opt beispielsweise auf CURLINFO_TOTAL_TIME gesetzt ist, gibt die Funktion curl_getinfo() nur total_time zurück, also die Zeit, die für die gesamte Übertragung benötigt wird. Wenn Sie nur auf bestimmte Übertragungsinformationen achten müssen, ist das Setzen des Parameters $opt sinnvoll .
  • Verwenden Sie CURL, um eine GET-Anfrage zu senden

So verwenden Sie CURL, um eine GET-Anfrage zu senden Stellen Sie eine URL im richtigen Format zusammen. Die Anforderungsadresse und die GET-Daten werden durch ein „?“ getrennt, dann werden der Name und der Wert der GET-Variablen durch „=“ getrennt und jeder GET-Name und -Wert wird durch „&“ verbunden. PHP stellt uns eine Funktion zur Verfügung, die speziell zum Zusammenstellen der GET-Anforderungs- und Datenteile verwendet wird – http_build_query. Diese Funktion akzeptiert ein assoziatives Array und gibt die durch die zugehörigen Daten beschriebene GET-Anforderungszeichenfolge zurück. Mit dieser Funktion haben wir in Kombination mit dem allgemeinen Prozess des CURL-Sendens von HTTP-Anfragen eine Funktion geschlossen, die GET-Anfragen sendet – doCurlGetRequest. Der spezifische Code lautet wie folgt:

/**
 *@desc 封闭curl的调用接口,get的请求方式。
*/
function doCurlGetRequest($url,$data,$timeout = 5){
 if($curl == "" || $timeout <= 0){
 return false;
 }
 $url = $url.&#39;?&#39;.http_bulid_query($data);
 $con = curl_init((string)$url);
 curl_setopt($con, CURLOPT_HEADER, false);
 curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
 curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
 
 return curl_exec($con);
}

Dies Die Funktion übergibt die URL mit den mithilfe von http_build_query zusammengestellten GET-Parametern an die Funktion „curl_init“ und verwendet dann CURL zum Senden der HTTP-Anfrage.

Verwenden Sie CURL, um eine POST-Anfrage zu senden.

Sie können die von CURL bereitgestellte Option CURLOPT_POSTFIELDS verwenden, um POST-String-Daten bereitzustellen die Anfrage im Text. Ebenso haben wir eine Funktion zum Senden einer POST-Anfrage implementiert – doCurlPostRequest. Der Code lautet wie folgt:

/**
** @desc 封装 curl 的调用接口,post的请求方式
**/
function doCurlPostRequest($url,$requestString,$timeout = 5){
 if($url == &#39;&#39; || $requestString == &#39;&#39; || $timeout <=0){
 return false;
 }
 $con = curl_init((string)$url);
 curl_setopt($con, CURLOPT_HEADER, false);
 curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);
 curl_setopt($con, CURLOPT_POST,true);
 curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
 curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout);
 return curl_exec($con); 
}

Zusätzlich zum Festlegen von CURLOPT_POSTFIELDS im obigen Code haben wir Setzen Sie CURL_POST außerdem auf true, um diese Anfrage als POST-Anfrage zu identifizieren. GET-Daten können auch in POST-Anfragen übermittelt werden. Sie müssen lediglich die GET-Anfragedaten in der URL zusammenstellen.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.


Verwandte Empfehlungen:

php implementiert die Methode der Verwendung von curl, um IP und Quelle für den Zugriff zu simulieren

PHP implementiert curl oder file_get_contents, um die Seite abzurufen, die eine Autorisierung erfordert

PHP verwendet CurlMethoden zur Implementierung einer simulierten Formularübermittlungsfunktion

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Curl zum Senden von Anfragen in PHP. 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