Heim >Backend-Entwicklung >PHP-Problem >Wozu dient Curl unter PHP?

Wozu dient Curl unter PHP?

coldplay.xixi
coldplay.xixiOriginal
2020-07-21 11:40:322977Durchsuche

Die Verwendung von Curl unter PHP ist: 1. Verwenden Sie CURL, um eine Anfrage zu senden. 2. Verwenden Sie CURL, um eine GET-Anfrage zu senden eine POST-Anfrage.

Wozu dient Curl unter PHP?

Die Verwendung von Curl unter PHP ist:

1 Der grundlegende Prozess der Verwendung von CURL Anfragen senden

Die Verwendung der PHP-Erweiterung zum Versenden einer HTTP-Anfrage umfasst im Allgemeinen die folgenden Schritte:

1. Initialisieren Sie das Verbindungshandle.

2 Optionen;

3. Führen Sie das VURL-Verbindungshandle aus und erhalten Sie es.

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

// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://www.codetc.com");
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

und

sollen CURL initialisieren bzw. CURL-Verbindungen herstellen und schließen ist relativ einfach. curl_init()curl_close()

CURL-Anfrage ausführen, gibt die Funktion die von der entsprechenden URL zurückgegebenen Daten zurück und gibt die Zufriedenheit als Zeichenfolge an. Tritt ein Fehler auf, gibt die Funktion FALSE zurück. 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.

curl_exec()Die wichtigste Funktion in der CURL-Funktionsbibliothek ist

, mit der HTTP-Anfragen angepasst werden können, indem die von der CURL-Funktionsbibliothek definierten Optionen festgelegt werden. Im obigen Codeausschnitt werden drei wichtige Optionen verwendet:

curl_setopt()

    CURLOPT_URL gibt die angeforderte URL an.
  • CURLOPT_RETURNTRANSFER wird auf 1 gesetzt, um die spätere Ausführung anzuzeigen . Die Rückgabe der Funktion „curl_exec“ ist die Rückgabezeichenfolge der URL, anstatt die Rückgabezeichenfolge an die Standardausgabe weiterzuleiten und TRUE zurückzugeben Es werden HTTP-Header-Informationen zurückgegeben.
  • Es gibt viele Optionen für CURL, Sie können sie auf der offiziellen Website von PHP nachlesen (http://www.php.net/manual/en/function.curl-setopt.php). ) Liste aller von CURL unterstützten Optionen.
  • 2. Erhalten Sie die Ausgabeinformationen der CURL-Anfrage

Nachdem die Funktion

ausgeführt wurde, können Sie die Funktion „curl_getinfo()“ verwenden, um die relevanten Informationen abzurufen Ausgabe durch die CURL-Anfrage, Beispielcode 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 die folgenden Daten enthält:

curl_exec()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 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

    gesetzt ist, gibt die Funktion

    nur total_time zurück, also die Gesamtübertragungszeit. Wenn Sie nur auf bestimmte Übertragungsinformationen achten müssen, ist das Setzen des Parameters $opt sinnvoll.

3. Verwenden Sie CURL, um eine GET-Anfrage zu senden. curl_getinfo()CURLINFO_TOTAL_TIMEcurl_getinfo()So verwenden Sie CURL, um eine GET-Anfrage zu senden. Der Schlüssel zum Senden einer GET-Anfrage besteht darin, eine URL zusammenzustellen das richtige Format. 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 –

. 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);
}
4. Verwenden Sie CURL zum Senden POST-Anfragen

http_build_querySie können die von CURL bereitgestellte Option

verwenden. Setzen Sie diese Option auf POST-String-Daten, um die Anfrage in den Text einzufügen. 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 zur Einstellung im obigen Code setzen wir auch

, um diese Anfrage als zu identifizieren eine POST-Anfrage. GET-Daten können auch in POST-Anfragen übermittelt werden. Sie müssen lediglich die GET-Anfragedaten in der URL zusammenstellen.

CURLOPT_POSTFIELDS

Verwandte Lernempfehlungen:

PHP-Programmierung vom Einstieg bis zur BeherrschungCURLOPT_POSTFIELDSCURL_POST为true

Das obige ist der detaillierte Inhalt vonWozu dient Curl unter 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