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:
rrreePHP 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);
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);
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!