Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von CURL in PHP zur Implementierung von GET- und POST-Anfragen

Verwendung von CURL in PHP zur Implementierung von GET- und POST-Anfragen

高洛峰
高洛峰Original
2016-10-20 14:48:081282Durchsuche

1. Was ist CURL?

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. Mit der cURL-Bibliothek von PHP können Sie Webseiten einfach und effektiv durchsuchen. 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.


2. CURL-Funktionsbibliothek.

curl_close – eine Curl-Sitzung schließen

curl_copy_handle – alle Inhalte und Parameter einer Curl-Verbindungsressource kopieren

curl_errno – eine numerische Zahl mit Fehlerinformationen für die aktuelle Sitzung zurückgeben

curl_error – Gibt eine Zeichenfolge mit Fehlerinformationen für die aktuelle Sitzung zurück

curl_exec – Führt eine Curl-Sitzung aus

curl_getinfo – Ruft Informationen über ein Curl-Verbindungsressourcenhandle ab

curl_init – Eine Curl-Sitzung initialisieren

curl_multi_add_handle – Eine separate Curl-Handle-Ressource zur Curl-Batch-Sitzung hinzufügen

curl_multi_close – Eine Batch-Handle-Ressource schließen

curl_multi_exec – Einen Curl analysieren Batch-Handle

curl_multi_getcontent – ​​Gibt den Textstrom der erhaltenen Ausgabe zurück

curl_multi_info_read – Ruft die relevanten Übertragungsinformationen des aktuell analysierten Curl ab

curl_multi_init – Initialisiert eine Curl-Batch-Handle-Ressource

curl_multi_remove_handle – Entfernen Sie eine Handle-Ressource in der Curl-Batch-Handle-Ressource.

curl_multi_select – Rufen Sie alle mit der cURL-Erweiterung verknüpften Sockets ab, die dann „ausgewählt“ werden können.

curl_setopt_array – Sitzungsparameter für einen Curl in Form eines Arrays festlegen

curl_setopt – Sitzungsparameter für einen Curl festlegen

curl_version – Curl-bezogene Versionsinformationen abrufen

curl_init Die Funktion of() initialisiert eine Curl-Sitzung. Der einzige Parameter der Funktion curl_init() ist optional und stellt eine URL-Adresse dar.

Die Funktion von curl_exec() besteht darin, eine Curl-Sitzung auszuführen. Der einzige Parameter ist das von der Funktion curl_init() zurückgegebene Handle.

Die Funktion „curl_close()“ wird zum Schließen einer Curl-Sitzung verwendet. Der einzige Parameter ist das von der Funktion „curl_init()“ zurückgegebene Handle.

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

 ①: Initialisierung

 curl_init()

 ②: Festlegen von Attributen

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

 ③: Ausführen und Ergebnis erhalten

 curl_exec()

 ④: Griff loslassen

 curl_close()

IV. CURL-Implementierung GET und POST

①: GET-Methode ist implementiert

<?php
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
    //设置头文件的信息作为数据流输出
    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 ist implementiert

 
<?php
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
    //设置头文件的信息作为数据流输出
    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($output,true);

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

5. Eine von mir selbst gekapselte Funktion

//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
 function curl_request($url,$post=&#39;&#39;,$cookie=&#39;&#39;, $returnCookie=0){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)&#39;);
        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[&#39;cookie&#39;]  = substr($matches[1][0], 1);
            $info[&#39;content&#39;] = $body;
            return $info;
        }else{
            return $data;
        }
}


Mit optionaler Parameterbeschreibung:

Erste Kategorie:

Für die optionalen Parameter der folgenden Optionen sollte der Wert auf einen Wert vom Typ Bool festgelegt werden:

Option

Ja Wert auswählen

Anmerkungen

CURLOPT_AUTOREFERER

Bei der Weiterleitung basierend auf Standort: werden die Referrer:-Informationen im Header automatisch festgelegt.

CURLOPT_BINARYTRANSFER

Gibt die Rohausgabe zurück, wenn CURLOPT_RETURNTRANSFER aktiviert ist.

CURLOPT_COOKIESESSION

Wenn aktiviert, übergibt Curl nur ein Sitzungscookie und ignoriert andere Cookies. Standardmäßig gibt Curl alle Cookies an den Server zurück. Sitzungscookies beziehen sich auf Cookies, die verwendet werden, um festzustellen, ob die serverseitige Sitzung gültig ist.

CURLOPT_CRLF

Wenn aktiviert, konvertieren Sie Unix-Zeilenvorschubzeichen in Wagenrücklauf- und Zeilenvorschubzeichen.

CURLOPT_DNS_USE_GLOBAL_CACHE

Wenn aktiviert, ist ein globaler DNS-Cache aktiviert. Dieses Element ist threadsicher und standardmäßig aktiviert.

CURLOPT_FAILONERROR

Zeigt den HTTP-Statuscode an. Das Standardverhalten besteht darin, HTTP-Nachrichten mit Nummern kleiner oder gleich 400 zu ignorieren.

CURLOPT_FILETIME

Wenn aktiviert, wird versucht, die Informationen im Remote-Dokument zu ändern. Die Ergebnisinformationen werden über die Option CURLINFO_FILETIME der Funktion curl_getinfo() zurückgegeben. curl_getinfo().

CURLOPT_FOLLOWLOCATION

Wenn aktiviert, wird der vom Server zurückgegebene „Standort:“ im Header platziert und rekursiv an den Server zurückgegeben. Verwenden Sie CURLOPT_MAXREDIRS, um die Anzahl der Rekursionen zu begrenzen kehrt zurück.

CURLOPT_FORBID_REUSE

Wird nach Abschluss der Interaktion zwangsweise getrennt und kann nicht wiederverwendet werden.

CURLOPT_FRESH_CONNECT

Erzwingt eine neue Verbindung, um die im Cache zu ersetzen.

CURLOPT_FTP_USE_EPRT

Wenn diese Option aktiviert ist, verwenden Sie beim FTP-Download den Befehl EPRT (oder LPRT). Bei Festlegung auf FALSE werden EPRT und LPRT deaktiviert, wobei nur der PORT-Befehl verwendet wird. Deaktiviert den EPSV-Befehl, wenn er auf FALSE gesetzt ist.

CURLOPT_FTPAPPEND

Wenn „Anhängen“ aktiviert ist, wird in die Datei geschrieben, anstatt sie zu überschreiben.

 CURLOPT_FTPASCII

  Alias ​​​​von CURLOPT_TRANSFERTEXT.

CURLOPT_FTPLISTONLY

Wenn aktiviert, wird nur der Name des FTP-Verzeichnisses aufgelistet.

CURLOPT_HEADER

Wenn aktiviert, werden die Header-Dateiinformationen als Datenstrom ausgegeben.

CURLINFO_HEADER_OUT

Die Anforderungszeichenfolge des Tracking-Handles, wenn aktiviert.

Verfügbar seit PHP 5.1.3. Das Präfix CURLINFO_ ist beabsichtigt.

CURLOPT_HTTPGET

Wenn diese Option aktiviert ist, wird die HTTP-Methode auf GET gesetzt. Da GET die Standardeinstellung ist, wird sie nur verwendet, wenn sie geändert wird.

CURLOPT_HTTPPROXYTUNNEL

Wenn aktiviert, wird es über einen HTTP-Proxy übertragen.

CURLOPT_MUTE

Wenn aktiviert, werden alle geänderten Parameter in der cURL-Funktion auf ihre Standardwerte zurückgesetzt.

CURLOPT_NETRC

Nachdem die Verbindung hergestellt wurde, greifen Sie auf die Datei ~/.netrc zu, um den Benutzernamen und das Passwort für die Verbindung mit der Remote-Site abzurufen.

CURLOPT_NOBODY

Wenn aktiviert, wird der BODY-Teil in HTML nicht ausgegeben.

CURLOPT_NOPROGRESS

Deaktivieren Sie den Fortschrittsbalken der Curl-Übertragung, wenn diese Option aktiviert ist.

Hinweis:

PHP setzt diese Option automatisch auf TRUE. Diese Option sollte nur zu Debugging-Zwecken geändert werden.

CURLOPT_NOSIGNAL

Wenn aktiviert, ignorieren Sie alle Signale, die von Curl an PHP übergeben werden. Dieses Element ist während der SAPI-Multithread-Übertragung standardmäßig aktiviert.

Hinzugefügt in cURL 7.10.

CURLOPT_POST

Wenn diese Option aktiviert ist, wird eine reguläre POST-Anfrage gesendet. Geben Sie Folgendes ein: application/x-www-form-urlencoded, genau wie bei der Formularübermittlung.

CURLOPT_PUT

Wenn aktiviert, darf HTTP Dateien senden. CURLOPT_INFILE und CURLOPT_INFILESIZE müssen gleichzeitig festgelegt werden.

CURLOPT_RETURNTRANSFER

Geben Sie die von curl_exec() erhaltenen Informationen in Form eines Dateistreams zurück, anstatt sie direkt auszugeben.

CURLOPT_SSL_VERIFYPEER

Wenn deaktiviert, beendet cURL die Überprüfung vom Server. Legen Sie das Zertifikat mit der Option CURLOPT_CAPATH fest. Wenn CURLOPT_SSL_VERIFYPEER (Standard 2) aktiviert ist, muss CURLOPT_SSL_VERIFYHOST auf TRUE gesetzt werden, andernfalls auf FALSE.

Der Standardwert ist TRUE seit cURL 7.10. Ab cURL 7.10 ist die Bundle-Installation standardmäßig vorgesehen.

CURLOPT_TRANSFERTEXT

Wenn aktiviert, verwenden Sie den ASCII-Modus für FTP-Übertragungen. Bei LDAP werden reine Textinformationen anstelle von HTML abgerufen. Auf Windows-Systemen setzt das System STDOUT nicht auf den Binärmodus.

CURLOPT_UNRESTRICTED_AUTH

Hängen Sie Benutzernamen- und Passwortinformationen kontinuierlich an mehrere Stellen im mit CURLOPT_FOLLOWLOCATION generierten Header an, auch wenn sich der Domänenname geändert hat.

CURLOPT_UPLOAD

Wenn aktiviert, sind Datei-Uploads zulässig.

CURLOPT_VERBOSE

Wenn aktiviert, werden alle Informationen gemeldet und in STDERR oder dem angegebenen CURLOPT_STDERR gespeichert.

Zweite Kategorie:


Für die optionalen Parameter der folgenden Optionen sollte der Wert auf einen Wert vom Typ Ganzzahl gesetzt werden:

Option

Optionaler Wert

Bemerkungen

CURLOPT_BUFFERSIZE

Die Größe des Caches, der jedes Mal in die erhaltenen Daten eingelesen wird, dieser Wert kann jedoch nicht jedes Mal garantiert werden jedes Mal gefüllt werden.

Hinzugefügt in cURL 7.10.

CURLOPT_CLOSEPOLICY

Entweder CURLCLOSEPOLICY_LEAST_RECENTLY_USED oder CURLCLOSEPOLICY_OLDEST, es gibt drei weitere CURLCLOSEPOLICY_, aber cURL unterstützt es noch nicht.

CURLOPT_CONNECTTIMEOUT

Die Zeit, die gewartet werden muss, bevor eine Verbindung hergestellt wird. Wenn sie auf 0 gesetzt ist, wird auf unbestimmte Zeit gewartet.

CURLOPT_CONNECTTIMEOUT_MS

Die Zeit, die auf einen Verbindungsversuch gewartet wird, in Millisekunden. Wenn auf 0 gesetzt, unendlich warten.

Hinzugefügt in cURL 7.16.2. Verfügbar ab PHP 5.2.3.

CURLOPT_DNS_CACHE_TIMEOUT

Legen Sie die Zeit zum Speichern von DNS-Informationen im Speicher fest. Der Standardwert beträgt 120 Sekunden.

CURLOPT_FTPSSLAUTH

FTP-Authentifizierungsmethode: CURLFTPAUTH_SSL (versuchen Sie es zuerst mit SSL), CURLFTPAUTH_TLS (versuchen Sie es zuerst mit TLS) oder CURLFTPAUTH_DEFAULT (lassen Sie cURL automatisch entscheiden).

Hinzugefügt in cURL 7.12.2. CURLOPT_HTTP_VERSION

CURLOPT_HTTPAUTH

Die verwendete HTTP-Authentifizierungsmethode sind: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY und CURLAUTH_ANYSAFE.

Sie können den Bitfeldoperator (oder) verwenden, um mehrere Werte zu trennen, und cURL lässt den Server denjenigen auswählen, der den besten unterstützt.

CURLAUTH_BASIC |. CURLAUTH_GSSNEGOTIATE |. 🎜> CURLOPT_INFILESIZE

Legen Sie die Größe der hochgeladenen Datei fest.

CURLOPT_LOW_SPEED_LIMIT

Wenn die Übertragungsgeschwindigkeit geringer als CURLOPT_LOW_SPEED_LIMIT (Byte/Sek.) ist, verwendet PHP CURLOPT_LOW_SPEED_TIME, um zu bestimmen, ob die Übertragung abgebrochen werden soll, weil sie zu langsam ist.

CURLOPT_LOW_SPEED_TIME

Wenn die Übertragungsgeschwindigkeit geringer als CURLOPT_LOW_SPEED_LIMIT (Byte/Sek.) ist, verwendet PHP CURLOPT_LOW_SPEED_TIME, um zu bestimmen, ob die Übertragung abgebrochen werden soll, weil sie zu langsam ist.

CURLOPT_MAXCONNECTS

Die maximal zulässige Anzahl von Verbindungen. Bei Überschreitung wird CURLOPT_CLOSEPOLICY verwendet, um zu bestimmen, welche Verbindungen gestoppt werden sollen.

CURLOPT_MAXREDIRS

Gibt die maximale Anzahl von HTTP-Weiterleitungen an. Diese Option wird zusammen mit CURLOPT_FOLLOWLOCATION verwendet.

CURLOPT_PORT

Wird zur Angabe des Verbindungsports verwendet. (Optional)

CURLOPT_PROTOCOLS

Das Bitfeld von CURLPROTO_*. Wenn diese Option aktiviert ist, begrenzt der Bitfeldwert, welche Protokolle libcurl während Übertragungen verwenden kann. Dadurch können Sie libcurl so kompilieren, dass es viele Protokolle unterstützt, aber nur eine Teilmenge davon verwendet, die verwendet werden darf. Standardmäßig verwendet libcurl alle unterstützten Protokolle. Siehe CURLOPT_REDIR_PROTOCOLS.

Die verfügbaren Protokolloptionen sind: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO. _FILE , CURLPROTO_TFTP, CURLPROTO_ALL

in cURL 7.19 . 4 wurde hinzugefügt.

CURLOPT_PROXYAUTH

Methode zur Überprüfung der HTTP-Proxy-Verbindung. Verwenden Sie die Bitfeld-Flags in CURLOPT_HTTPAUTH, um die entsprechenden Optionen festzulegen. Für die Proxy-Authentifizierung werden derzeit nur CURLAUTH_BASIC und CURLAUTH_NTLM unterstützt.

Hinzugefügt in cURL 7.10.7.

CURLOPT_PROXYPORT

Der Port des Proxyservers. Der Port kann auch in CURLOPT_PROXY eingestellt werden.

CURLOPT_PROXYTYPE

Entweder CURLPROXY_HTTP (Standard) oder CURLPROXY_SOCKS5.

Hinzugefügt in cURL 7.10.

CURLOPT_REDIR_PROTOCOLS

Der Bitfeldwert in CURLPROTO_*. Wenn aktiviert, begrenzt der Bitfeldwert die Protokolle, die der Transportthread verwenden kann, wenn er einer Umleitung folgt, wenn CURLOPT_FOLLOWLOCATION aktiviert ist. Dadurch können Sie den Transportthread bei der Umleitung auf eine Teilmenge zulässiger Protokolle beschränken. Standardmäßig lässt libcurl alle Protokolle außer FILE und SCP zu. Dies unterscheidet sich geringfügig von der Vorabversion 7.19.4, die bedingungslos allen unterstützten Protokollen folgt. Informationen zu Protokollkonstanten finden Sie unter CURLOPT_PROTOCOLS.

Hinzugefügt in cURL 7.19.4.

CURLOPT_RESUME_FROM

Übergeben Sie einen Byte-Offset, wenn die Übertragung fortgesetzt wird (wird verwendet, um die Übertragung vom Haltepunkt aus fortzusetzen).

CURLOPT_SSL_VERIFYHOST

1 Überprüfen Sie, ob im Server-SSL-Zertifikat ein allgemeiner Name vorhanden ist. Anmerkung des Übersetzers: Unter Common Name versteht man im Allgemeinen das Ausfüllen des Domainnamens (Domain) oder der Subdomain (Subdomain), für die Sie ein SSL-Zertifikat beantragen möchten. 2 Überprüfen Sie, ob der allgemeine Name vorhanden ist und mit dem angegebenen Hostnamen übereinstimmt.

CURLOPT_SSLVERSION

Die zu verwendende SSL-Version (2 oder 3). Standardmäßig erkennt PHP diesen Wert selbst, obwohl er in einigen Fällen möglicherweise manuell festgelegt werden muss.

CURLOPT_TIMECONDITION

Wenn sie nach einer bestimmten durch CURLOPT_TIMEVALUE angegebenen Zeit bearbeitet wurde, verwenden Sie CURL_TIMECOND_IFMODSINCE, um die Seite zurückzugeben. Wenn sie nicht geändert wurde und CURLOPT_HEADER wahr ist, geben Sie „304 Not Modified“ zurück " "-Header, wenn CURLOPT_HEADER falsch ist, verwenden Sie CURL_TIMECOND_IFUNMODSINCE. Der Standardwert ist CURL_TIMECOND_IFUNMODSINCE.

CURLOPT_TIMEOUT

Legen Sie die maximale Anzahl von Sekunden fest, die cURL ausführen darf.

CURLOPT_TIMEOUT_MS

Legen Sie die maximale Anzahl von Millisekunden fest, die cURL ausführen darf.

Hinzugefügt in cURL 7.16.2. Verfügbar ab PHP 5.2.3.

CURLOPT_TIMEVALUE

Legen Sie einen Zeitstempel fest, der von CURLOPT_TIMECONDITION verwendet wird. Standardmäßig wird CURL_TIMECOND_IFMODSINCE verwendet.

Die dritte Kategorie:

Für die optionalen Parameter der folgenden Optionen sollte der Wert auf einen Zeichenfolgentypwert festgelegt werden:

Option

Ja Auswählen Wert

Bemerkungen

CURLOPT_CAINFO

Ein Dateiname, der ein oder mehrere Zertifikate für die Serverüberprüfung enthält. Dieser Parameter ist nur bei Verwendung mit CURLOPT_SSL_VERIFYPEER von Bedeutung. .

CURLOPT_CAPATH

Ein Verzeichnis, das mehrere CA-Zertifikate enthält. Diese Option wird mit CURLOPT_SSL_VERIFYPEER verwendet.

CURLOPT_COOKIE

Legen Sie den „Cookie:“-Teil der HTTP-Anfrage fest. Mehrere Cookies werden durch ein Semikolon gefolgt von einem Leerzeichen getrennt (z. B. „Frucht=Apfel; Farbe=Rot“).

CURLOPT_COOKIEFILE

Der Dateiname, der Cookie-Daten enthält. Das Format der Cookie-Datei kann das Netscape-Format sein, oder es können nur reine HTTP-Header-Informationen in der Datei gespeichert werden.

CURLOPT_COOKIEJAR

Eine Datei, die Cookie-Informationen speichert, nachdem die Verbindung hergestellt wurde.

CURLOPT_CUSTOMREQUEST

Verwenden Sie eine benutzerdefinierte Anforderungsnachricht anstelle von „GET“ oder „HEAD“ als HTTP-Anfrage. Dies ist nützlich, um „DELETE“ oder andere verdecktere HTTP-Anfragen auszuführen. Gültige Werte sind „GET“, „POST“, „CONNECT“ usw. Das heißt, geben Sie hier nicht die gesamte HTTP-Anfrage ein. Beispielsweise ist die Eingabe von „GET /index.html HTTP/1.0rnrn“ falsch.

Hinweis:

Verwenden Sie diese benutzerdefinierte Anforderungsmethode erst, wenn Sie sicher sind, dass der Server sie unterstützt.

CURLOPT_EGDSOCKET

Ähnlich wie CURLOPT_RANDOM_FILE, mit Ausnahme eines Entropy Gathering Daemon-Sockets.

CURLOPT_ENCODING

Der Wert von „Accept-Encoding:“ im HTTP-Anforderungsheader. Unterstützte Kodierungen sind „identity“, „deflate“ und „gzip“. Wenn es sich um die leere Zeichenfolge „“ handelt, sendet der Anforderungsheader alle unterstützten Kodierungstypen.

Hinzugefügt in cURL 7.10.

CURLOPT_FTPPORT

Dieser Wert wird verwendet, um die IP-Adresse zu erhalten, die für den FTP-Befehl „POST“ erforderlich ist. Der Befehl „POST“ weist den Remote-Server an, eine Verbindung zu der von uns angegebenen IP-Adresse herzustellen. Diese Zeichenfolge kann eine Klartext-IP-Adresse, ein Hostname, ein Netzwerkschnittstellenname (unter UNIX) oder einfach ein „-“ sein, um die Standard-IP-Adresse zu verwenden.

CURLOPT_INTERFACE

Der Netzwerk-Sendeschnittstellenname, der ein Schnittstellenname, eine IP-Adresse oder ein Hostname sein kann.

CURLOPT_KRB4LEVEL

KRB4 (Kerberos 4) Sicherheitsstufe. Jeder der folgenden Werte ist gültig (in der Reihenfolge vom niedrigsten zum höchsten): „klar“, „sicher“, „vertraulich“, „privat“. Wenn die Zeichenfolge mit keiner dieser Angaben übereinstimmt, wird „private“ verwendet. Wenn Sie diese Option auf NULL setzen, wird die KRB4-Sicherheitsauthentifizierung deaktiviert. Derzeit kann die KRB4-Sicherheitszertifizierung nur für FTP-Übertragungen verwendet werden.

CURLOPT_POSTFIELDS

Alle Daten werden über die Operation „POST“ im HTTP-Protokoll gesendet. Um eine Datei zu senden, stellen Sie dem Dateinamen ein @ voran und verwenden Sie den vollständigen Pfad. Dieser Parameter kann über eine URL-codierte Zeichenfolge wie „para1=val1¶2=val2&...“ oder ein Array mit dem Feldnamen als Schlüssel und den Felddaten als Wert übergeben werden. Wenn value ein Array ist, wird der Content-Type-Header auf multipart/form-data gesetzt.

CURLOPT_PROXY

HTTP-Proxy-Kanal.

CURLOPT_PROXYUSERPWD

Eine Zeichenfolge im Format „[Benutzername]:[Passwort]“, die zur Verbindung mit dem Proxy verwendet wird.

CURLOPT_RANDOM_FILE

Ein Dateiname, der zum Generieren von SSL-Zufallszahlen-Seeds verwendet wird.

CURLOPT_RANGE

In der Form „X-Y“, wobei X und Y optional sind, um den Datenbereich in Bytes zu erhalten. Der HTTP-Transportthread unterstützt auch mehrere solcher durch Kommas getrennten Duplikate wie „X-Y,N-M“.

CURLOPT_REFERER

Der Inhalt von „Referer:“ im HTTP-Anfrageheader.

CURLOPT_SSL_CIPHER_LIST

Eine Liste von SSL-Verschlüsselungsalgorithmen. Beispielsweise sind RC4-SHA und TLSv1 beide verfügbare Verschlüsselungslisten.

CURLOPT_SSLCERT

Ein Dateiname, der ein Zertifikat im PEM-Format enthält.

CURLOPT_SSLCERTPASSWD

Das für die Verwendung des CURLOPT_SSLCERT-Zertifikats erforderliche Passwort.

CURLOPT_SSLCERTTYPE

Der Typ des Zertifikats. Unterstützte Formate sind „PEM“ (Standard), „DER“ und „ENG“.

Hinzugefügt in cURL 7.9.3.

CURLOPT_SSLENGINE

Die Verschlüsselungs-Engine-Variable, die für den in CURLOPT_SSLKEY angegebenen privaten SSL-Schlüssel verwendet wird.

CURLOPT_SSLENGINE_DEFAULT

Variablen, die für asymmetrische Verschlüsselungsvorgänge verwendet werden.

CURLOPT_SSLKEY

Der Dateiname, der den privaten SSL-Schlüssel enthält.

CURLOPT_SSLKEYPASSWD

Das Passwort für den in CURLOPT_SSLKEY angegebenen privaten SSL-Schlüssel.

Hinweis:

Da diese Option vertrauliche Passwortinformationen enthält, denken Sie daran, dieses PHP-Skript sicher aufzubewahren.

CURLOPT_SSLKEYTYPE

Der Verschlüsselungstyp des in CURLOPT_SSLKEY angegebenen privaten Schlüssels. Die unterstützten Schlüsseltypen sind „PEM“ (Standardwert), „DER“ und „ENG“.

CURLOPT_URL

Die abzurufende URL-Adresse kann auch in der Funktion curl_init() festgelegt werden.

CURLOPT_USERAGENT

Enthält eine „User-Agent:“-Headerzeichenfolge in der HTTP-Anfrage.

CURLOPT_USERPWD

Übergeben Sie den für eine Verbindung erforderlichen Benutzernamen und das Passwort im Format: „[Benutzername]:[Passwort]“.

Kategorie 4

Für die optionalen Parameter der folgenden Optionen sollte der Wert auf ein Array gesetzt werden:

Option

Optionaler Wert

Bemerkungen

CURLOPT_HTTP200ALIASES

200 Antwortcode-Array, die Antwort im Array wird als korrekte Antwort betrachtet, andernfalls wird sie als Fehler betrachtet.

Hinzugefügt in cURL 7.10.3.

CURLOPT_HTTPHEADER

Ein Array, das zum Festlegen von HTTP-Headerfeldern verwendet wird. Verwenden Sie zum Festlegen ein Array in der folgenden Form: array('Content-type: text/plain', 'Content-length: 100′)

CURLOPT_POSTQUOTE

Nachdem die FTP-Anfrage abgeschlossen ist, Eine Reihe von FTP-Befehlen, die auf dem Server ausgeführt werden.

CURLOPT_QUOTE

Eine Reihe von FTP-Befehlen, die vor der FTP-Anfrage auf dem Server ausgeführt werden.

Für die optionalen Parameter der folgenden Optionen sollte der Wert auf eine Stream-Ressource festgelegt werden (z. B. mit fopen()):

Option

Optionaler Wert

CURLOPT_FILE

Legen Sie den Speicherort der Ausgabedatei fest. Der Wert ist ein Ressourcentyp. Der Standardwert ist STDOUT (Browser).

CURLOPT_INFILE

Die Dateiadresse, die beim Hochladen einer Datei gelesen werden muss. Der Wert ist ein Ressourcentyp.

CURLOPT_STDERR

Legen Sie eine Fehlerausgabeadresse fest. Der Wert ist ein Ressourcentyp und ersetzt den Standardwert STDERR.

CURLOPT_WRITEHEADER

Legen Sie die Dateiadresse fest, in die der Header-Teil geschrieben wird, und der Wert ist ein Ressourcentyp.

Für die optionalen Parameter der folgenden Optionen sollte der Wert auf einen Callback-Funktionsnamen gesetzt werden:

Option

Optionaler Wert

CURLOPT_HEADERFUNCTION

Legen Sie eine Rückruffunktion fest. Der erste ist das cURL-Ressourcenhandle und der zweite sind die Ausgabeheaderdaten. Die Ausgabe von Header-Daten muss auf dieser Funktion basieren, die die Größe der geschriebenen Daten zurückgibt.

CURLOPT_PASSWDFUNCTION

Legen Sie eine Rückruffunktion mit drei Parametern fest. Der erste ist das cURL-Ressourcenhandle, der zweite ist eine Passwortabfrage und der dritte Parameter ist der maximal zulässige Passwortwert. Gibt den Wert des Passworts zurück.

CURLOPT_PROGRESSFUNCTION

Legen Sie eine Rückruffunktion mit drei Parametern fest. Der erste ist das cURL-Ressourcenhandle, der zweite ist eine Dateideskriptorressource und der dritte ist die Länge. Gibt die enthaltenen Daten zurück.

CURLOPT_READFUNCTION

Eine Rückruffunktion mit zwei Parametern. Der erste Parameter ist das Sitzungshandle und der zweite Parameter ist die Zeichenfolge der HTTP-Antwort-Header-Informationen. Mit dieser Funktion werden die zurückgegebenen Daten selbst verarbeitet. Der Rückgabewert ist die Datengröße in Bytes. Die Rückgabe von 0 stellt das EOF-Signal dar.

CURLOPT_WRITEFUNCTION

Eine Callback-Funktion mit zwei Parametern. Der erste Parameter ist das Sitzungshandle und der zweite Parameter ist die Zeichenfolge der HTTP-Antwort-Header-Informationen. Mit dieser Rückruffunktion werden die Antwortheaderinformationen selbst verarbeitet. Die Antwort-Header-Informationen sind die gesamte Zeichenfolge. Setzen Sie den Rückgabewert auf die genaue Länge der geschriebenen Zeichenfolge. Der Transportthread wird beendet, wenn ein Fehler auftritt.


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