Heim > Backend-Entwicklung > PHP-Tutorial > Ausführliches Tutorial zum Senden einer PHP-Curl-Anfrage

Ausführliches Tutorial zum Senden einer PHP-Curl-Anfrage

angryTom
Freigeben: 2023-04-07 07:06:01
Original
9686 Leute haben es durchsucht

Ausführliches Tutorial zum Senden einer PHP-Curl-Anfrage

Wenn Sie mehr über PHP erfahren möchten, klicken Sie auf: PHP-Tutorial

 cURL kann die URL-Syntax verwenden, um einen Browser zum Übertragen von Daten zu simulieren. Da es einen Browser simuliert, unterstützt es auch mehrere Protokolle, FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE und LDAP kann gut unterstützt werden, einschließlich: HTTPS-Authentifizierung, HTTP-POST-Methode, HTTP-PUT-Methode, FTP-Upload, Keyberos-Authentifizierung, HTTP-Upload, Proxyserver, Cookies, Benutzername/Passwort-Authentifizierung, Datei-Haltepunkte herunterladen. Übertragung fortsetzen, Hochladen von Dateien an Haltepunkten fortsetzen. HTTP-Proxyserver-Pipeline und unterstützt sogar IPv6, Scoket5-Proxyserver, Hochladen von Dateien auf einen FTP-Server über einen HTTP-Proxyserver usw.

 Mit der cURL-Bibliothek von PHP können Webseiten einfach und effektiv gecrawlt werden. Sie müssen nur ein Skript ausführen, dann die von Ihnen gecrawlten Webseiten analysieren und dann 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.

1. Grundlegende Schritte zum Einrichten einer CURL-Anfrage in PHP

①: Initialisierung

 curl_init()

②: Eigenschaften festlegen

 curl_setopt() Es gibt eine lange Liste festzulegender cURL-Parameter, die verschiedene Details der URL-Anfrage angeben können.

③: Ausführen und das Ergebnis erhalten

  curl_exec()

④: Lassen Sie den Griff los

 curl_close()

2. Beispiel:

PHP Curl sendet Get-Anfrage:

rrree

PHP Curl sendet Post-Anfrage:

//初始化
$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);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状态码
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
Nach dem Login kopieren

test.php:

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

3. PHP cURL-Funktion:

Das Folgende enthält eine Liste der PHP-cURL-Funktionen:

Funktion Beschreibung
curl_close() Schließt eine cURL-Sitzung.
curl_copy_handle() Kopieren Sie ein cURL-Handle und alle seine Optionen.
curl_errno() Gibt die letzte Fehlernummer zurück.
curl_error() Gibt eine Zeichenfolge zurück, die den letzten Fehler in der aktuellen Sitzung schützt.
curl_escape() Gibt die Escape-Zeichenfolge zurück, wobei die URL die angegebene Zeichenfolge kodiert.
curl_exec() Führen Sie eine cURL-Sitzung aus.
curl_file_create() Erstellen Sie ein CURLFile-Objekt.
curl_getinfo() Informationen über ein cURL-Verbindungsressourcenhandle abrufen.
curl_init() Initialisieren Sie eine cURL-Sitzung.
curl_multi_add_handle() Fügen Sie einzelne Curl-Handles zu einer Curl-Batch-Sitzung hinzu.
curl_multi_close() Eine Gruppe von cURL-Handles schließen.
curl_multi_exec() Führen Sie eine Unterverbindung des aktuellen cURL-Handles aus.
curl_multi_getcontent() Wenn CURLOPT_RETURNTRANSFER gesetzt ist, wird der Textstrom der erhaltenen Ausgabe zurückgegeben.
curl_multi_info_read() Rufen Sie die relevanten Übertragungsinformationen der aktuell analysierten cURL ab.
curl_multi_init() Gibt ein neues cURL-Batch-Handle zurück.
curl_multi_remove_handle() Entfernen Sie eine Handle-Ressource in der Curl-Batch-Handle-Ressource.
curl_multi_select() Warten Sie auf alle aktiven Verbindungen im cURL-Batch.
curl_multi_setopt() Legt eine Batch-cURL-Übertragungsoption fest.
curl_multi_strerror() Gibt einen Zeichenfolgentext zurück, der den Fehlercode beschreibt.
curl_pause() Pausieren Sie die Verbindung und setzen Sie sie fort.
curl_reset() Setzt alle Optionen des Sitzungshandles von libcurl zurück.
curl_setopt_array() Optionen in großen Mengen für cURL-Übertragungssitzungen festlegen.
curl_setopt() Legt eine cURL-Übertragungsoption fest.
curl_share_close() Schließen Sie das cURL-Freigabehandle.
curl_share_init() Initialisieren Sie das cURL-Freigabehandle.
curl_share_setopt() Legt die cURL-Übertragungsoptionen für ein gemeinsames Handle fest.
curl_strerror() Gibt eine Zeichenfolgenbeschreibung des Fehlercodes zurück.
curl_unescape() Dekodieren Sie die URL-codierte Zeichenfolge.
curl_version() CURL-Versionsinformationen abrufen.

Gibt bei Erfolg TRUE und bei Misserfolg FALSE zurück.

Einige Statuscodes

1xx: Anfrage erhalten, Verarbeitung fortsetzen

2xx: Vorgang erfolgreich empfangen, Analyse, Akzeptieren

3xx: Der Abschluss dieser Anfrage muss eine weitere Verarbeitung erfordern

4xx: Die Anfrage enthält eine falsche Syntax oder kann nicht abgeschlossen werden

5xx: Der Server konnte eine vollständig gültige Anfrage nicht ausführen

100 – Der Client muss weiterhin Anfragen stellen

101 – Der Client verlangt vom Server, dass er die HTTP-Protokollversion gemäß der Anfrage konvertiert

200 – Die Transaktion ist erfolgreich

201 – Aufforderung zur Angabe der URL der neuen Datei

202 – akzeptiert und verarbeitet, aber die Verarbeitung ist nicht abgeschlossen

203 – Rückgabeinformationen sind unsicher oder unvollständig

204 – Anfrage empfangen, aber die Rückgabeinformationen sind leer

205 – Der Server hat die Anfrage abgeschlossen, der Benutzeragent muss die aktuell durchsuchten Dateien zurücksetzen

206 – Der Server hat einige abgeschlossen GET-Anfragen der Benutzer

300 – Die angeforderte Ressource ist an mehreren Orten verfügbar

301 – Löschen Sie die Anforderungsdaten

302 – Die Anforderungsdaten wurden an anderen Adressen gefunden

303— –Es wird empfohlen, dass Kunden andere URLs oder Zugriffsmethoden besuchen

304 – Der Client hat GET ausgeführt, aber die Datei hat sich nicht geändert

305 – Die angeforderte Ressource muss von der vom Server angegebenen Adresse abgerufen werden

306 – Code, der in der vorherigen Version von HTTP verwendet wurde, in der aktuellen Version nicht mehr verwendet

307 – Erklärung, dass die angeforderte Ressource vorübergehend gelöscht wurde

400 – Ungültige Anfrage, z. B. Syntaxfehler

401 – Anfrageautorisierung fehlgeschlagen

402 – Gültige ChargeTo-Header-Antwort beibehalten

403 – Anfrage nicht zulässig

404 – Keine Datei, Abfrage oder URL gefunden

405 – Die vom Benutzer im Feld „Request-Line“ definierte Methode ist nicht zulässig

406 – Entsprechend dem Accept-Drag Vom Benutzer gesendet, ist die angeforderte Ressource nicht zugänglich

407 – Ähnlich wie bei 401 muss der Benutzer zunächst eine Autorisierung auf dem Proxyserver einholen

408 – Der Client hat die Anfrage nicht innerhalb der Zeit abgeschlossen vom Benutzer angegeben

409 – Für den aktuellen Ressourcenstatus kann die Anforderung nicht abgeschlossen werden

410 – Diese Ressource existiert nicht mehr auf dem Server und es gibt keine weitere Referenzadresse

411 – Der Server lehnt die benutzerdefinierte Content-Length-Attributanforderung ab

412 – Ein oder mehrere Anforderungsheaderfelder sind in der aktuellen Anforderung falsch

413 – Die angeforderte Ressource ist größer als die Vom Server zugelassene Größe

414 – Die angeforderte Ressourcen-URL ist länger als die vom Server zulässige Länge

415 – Die angeforderte Ressource unterstützt das Anforderungselementformat nicht

416 – Die Anfrage enthält das Anforderungsheaderfeld „Range“, und es gibt keinen Bereichsangabewert innerhalb des aktuellen Anforderungsressourcenbereichs, der anfordert

Sie enthält auch nicht das Anforderungsheaderfeld „If-Range“

417 - The Der Server erfüllt nicht die im Anforderungs-Header-Feld angegebenen Erwartungen. Wenn es sich um einen Proxy-Server handelt, kann es sein, dass der Server der nächsten Ebene die Anforderung nicht erfüllen kann

500 – Der Server hat einen internen Fehler generiert

501 – Der Server unterstützt die angeforderte Funktion nicht

502 – Der Server ist vorübergehend nicht verfügbar, manchmal um eine Systemüberlastung zu verhindern

503 – Der Server ist überlastet oder wegen Wartungsarbeiten angehalten

504 – Das Gateway ist überlastet, der Server verwendet ein anderes Gate oder einen anderen Dienst, um auf den Benutzer zu antworten, der Einstellwert für die Wartezeit ist länger

505 – Der Server Die in angegebene HTTP-Version Der Anforderungsheader wird nicht unterstützt oder die Unterstützung wird verweigert

Das obige ist der detaillierte Inhalt vonAusführliches Tutorial zum Senden einer PHP-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