PHP-Funktion curl_setopt

PHP Calendar 参考手册PHP cURL-Referenzhandbuch

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt — Legt eine cURL-Transferoption fest.


Beschreibung

bool curl_setopt ( resource $ch , int $option , mixed $value )

Setzt eine Option für das angegebene cURL-Sitzungshandle.


Parameters

ch

cURL-Handle, das von curl_init() zurückgegeben wird.

option

Die CURLOPT_XXX-Option, die gesetzt werden soll.

value

Der Wert, der für die Option festgelegt werden soll.

Für die folgenden optionalen Parameter für diese Optionen sollte value auf einen booleschen Wert gesetzt werden:

Option WertvalueWert Hinweise
CURLOPT_AUTOREFERER Beim Folgen vonLocation:-Weiterleitungen automatisch die Header-InformationenReferer:setzen.
CURLOPT_BINARYTRANSFER Wenn aktiviert, gibtCURLOPT_RETURNTRANSFERnative (Raw)-Ausgabe zurück.
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 sind solche, die existieren, um festzustellen, ob die serverseitige Sitzung gültig ist.
CURLOPT_CRLF Wenn aktiviert, Unix-Zeilenumbrüche in Wagenrücklauf und Zeilenvorschub umwandeln.
CURLOPT_DNS_USE_GLOBAL_CACHE Wenn aktiviert, wird ein globaler DNS-Cache aktiviert. Diese Option ist threadsicher und standardmäßig aktiviert.
CURLOPT_FAILONERROR HTTP-Statuscodes anzeigen. Standardmäßig werden HTTP-Nachrichten mit Codes kleiner oder gleich 400 ignoriert.
CURLOPT_FILETIME Wenn aktiviert, wird versucht, Änderungsinformationen des entfernten Dokuments zu ermitteln. Die Ergebnisinformationen werden über die OptionCURLINFO_FILETIMEder Funktion curl_getinfo() zurückgegeben. curl_getinfo().
CURLOPT_FOLLOWLOCATION Wenn aktiviert, wird das vom Server zurückgegebene"Location: "genommen, in den Header gesetzt und rekursiv an den Server zurückgegeben; mitCURLOPT_MAXREDIRSkann die Anzahl der rekursiven Rückgaben begrenzt werden.
CURLOPT_FORBID_REUSE Erzwingt die Trennung der Verbindung nach Abschluss der Interaktion; kann nicht wiederverwendet werden.
CURLOPT_FRESH_CONNECT Erzwingt, dass eine neue Verbindung hergestellt wird, wodurch die zwischengespeicherte Verbindung ersetzt wird.
CURLOPT_FTP_USE_EPRT Wenn aktiviert, während des FTP-Downloads den EPRT-Befehl (oder LPRT) verwenden. Die EinstellungFALSEdeaktiviert EPRT und LPRT und verwendet nur den PORT-Befehl.
CURLOPT_FTP_USE_EPSV Wenn aktiviert, versucht es während der FTP-Übertragung zuerst den EPSV-Befehl, bevor es in den PASV-Modus zurückfällt. Die EinstellungFALSEdeaktiviert den EPSV-Befehl.
CURLOPT_FTPAPPEND Wenn aktiviert, an die Datei anhängen, anstatt sie zu überschreiben.
CURLOPT_FTPASCII CURLOPT_TRANSFERTEXTAlias von.
CURLOPT_FTPLISTONLY Wenn aktiviert, nur die Namen der FTP-Verzeichnisse auflisten.
CURLOPT_HEADER Wenn aktiviert, werden Header-Dateiinformationen als Datenstrom ausgegeben.
CURLINFO_HEADER_OUT Wenn aktiviert, die Anfragezeichenfolge des Handles verfolgen. Verfügbar ab PHP 5.1.3.CURLINFO_Das Präfix ist beabsichtigt.
CURLOPT_HTTPGET Wenn aktiviert, wird die HTTP-Methode auf GET gesetzt. Da GET die Standardeinstellung ist, wird sie nur verwendet, wenn sie geändert wurde.
CURLOPT_HTTPPROXYTUNNEL Wenn aktiviert, wird ü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~/.netrcdie Datei zu, um Benutzername- und Passwortinformationen zu erhalten, um eine Verbindung zur Remote-Site herzustellen.
CURLOPT_NOBODY Wenn aktiviert, wird der BODY-Teil von HTML nicht ausgegeben.
CURLOPT_NOPROGRESS

Wenn aktiviert, wird der Fortschrittsbalken für den curl-Transfer deaktiviert. Diese Option ist standardmäßig aktiviert.

Hinweis:

PHP setzt diese Option automatisch aufTRUE, diese Option sollte nur zu Debugging-Zwecken geändert werden.

CURLOPT_NOSIGNAL Wenn aktiviert, werden alle von curl an PHP übergebenen Signale ignoriert. Diese Option ist während des SAPI-Multithread-Transfers standardmäßig aktiviert. Hinzugefügt in cURL 7.10.
CURLOPT_POST Wenn aktiviert, wird eine reguläre POST-Anfrage gesendet, mit Typ:application/x-www-form-urlencoded, genau wie beim Absenden eines Formulars.
CURLOPT_PUT Wenn aktiviert, ist das Senden von HTTP-Dateien erlaubt; außerdem müssenCURLOPT_INFILEundCURLOPT_INFILESIZE gesetzt werden.。
CURLOPT_RETURNTRANSFER Die von curl_exec() erhaltenen Informationen als Dateistream zurückgeben, anstatt sie direkt auszugeben.
CURLOPT_SSL_VERIFYPEER Wenn deaktiviert, hört cURL auf, den Server zu verifizieren. Verwenden Sie die OptionCURLOPT_CAINFO, um das Zertifikat festzulegen; verwenden Sie die OptionCURLOPT_CAPATH, um das Zertifikatsverzeichnis festzulegen;CURLOPT_SSL_VERIFYPEER(Standardwert 2) ist aktiviert,CURLOPT_SSL_VERIFYHOSTmuss aufTRUEgesetzt werden, andernfalls aufFALSE。 Standardwert ist seit cURL 7.10TRUE. Seit cURL 7.10 standardmäßig gebunden.
CURLOPT_TRANSFERTEXT Wenn aktiviert, wird der ASCII-Modus für die FTP-Übertragung verwendet. Für LDAP werden Klartextinformationen anstelle von HTML abgerufen. Unter Windows-Systemen setzt das SystemSTDOUTnicht in den Binärmodus.
CURLOPT_UNRESTRICTED_AUTH WennCURLOPT_FOLLOWLOCATIONverwendet wird, weiterhin Benutzername- und Passwortinformationen bei mehreren Weiterleitungen im generierten Header anhängen, auch wenn sich die Domain geändert hat.
CURLOPT_UPLOAD Wenn aktiviert, ist das Hochladen von Dateien erlaubt.
CURLOPT_VERBOSE Wenn aktiviert, werden alle Informationen gemeldet, gespeichert inSTDERRoder in dem angegebenenCURLOPT_STDERR.

Für die folgenden optionalen Parameter für diese Optionen sollte der Wert auf einen ganzzahligen Wert gesetzt werden:

Option WertvalueWert Hinweise
CURLOPT_BUFFERSIZE Die Größe des Caches, der bei jedem abgerufenen Datenblock gelesen wird, aber es gibt keine Garantie, dass dieser Wert jedes Mal gefüllt wird. Hinzugefügt in cURL 7.10.
CURLOPT_CLOSEPOLICY Entweder CURLCLOSEPOLICY_LEAST_RECENTLY_USED oder CURLCLOSEPOLICY_OLDEST. Es gibt drei weitere CURLCLOSEPOLICY-Werte, aber cURL unterstützt sie noch nicht.
CURLOPT_CONNECTTIMEOUT Die Wartezeit vor dem Initiieren einer Verbindung; wenn auf 0 gesetzt, wird unbegrenzt gewartet.
CURLOPT_CONNECTTIMEOUT_MS Die Wartezeit bei einem Verbindungsversuch, in Millisekunden. Wenn auf 0 gesetzt, wird unbegrenzt gewartet. Hinzugefügt in cURL 7.16.2. Verfügbar ab PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT Legt die Zeit fest, DNS-Informationen im Speicher zu speichern; Standard ist 120 Sekunden.
CURLOPT_FTPSSLAUTH FTP-Authentifizierungsmethode:CURLFTPAUTH_SSL(zuerst SSL versuchen),CURLFTPAUTH_TLS(zuerst TLS versuchen) oderCURLFTPAUTH_DEFAULT(cURL automatisch entscheiden lassen). Hinzugefügt in cURL 7.12.2.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE(Standard, cURL entscheiden lassen, welche Version verwendet wird),CURL_HTTP_VERSION_1_0(HTTP/1.0 erzwingen) oderCURL_HTTP_VERSION_1_1(HTTP/1.1 erzwingen).
CURLOPT_INFILESIZE Legt die Größenbeschränkung für hochgeladene Dateien in Bytes fest.
CURLOPT_LOW_SPEED_LIMIT Wenn die Übertragungsgeschwindigkeit kleiner alsCURLOPT_LOW_SPEED_LIMIT(bytes/sec) ist, entscheidet PHP anhand vonCURLOPT_LOW_SPEED_TIME, ob die Übertragung abgebrochen wird, weil sie zu langsam ist.
CURLOPT_LOW_SPEED_TIME Wenn die Übertragungsgeschwindigkeit kleiner alsCURLOPT_LOW_SPEED_LIMIT(bytes/sec) ist, entscheidet PHP anhand vonCURLOPT_LOW_SPEED_TIME, ob die Übertragung abgebrochen wird, weil sie zu langsam ist.
CURLOPT_MAXCONNECTS Die maximale Anzahl zulässiger Verbindungen; wenn diese überschritten wird, wirdCURLOPT_CLOSEPOLICYverwendet, um zu entscheiden, welche Verbindungen beendet werden sollen.
CURLOPT_MAXREDIRS Gibt die maximale Anzahl von HTTP-Weiterleitungen an. Diese Option wird zusammen mitCURLOPT_FOLLOWLOCATIONverwendet.
CURLOPT_PORT Wird verwendet, um den Verbindungsport anzugeben. (Optional)
CURLOPT_PROTOCOLS CURLPROTO_*Bitmaske. Wenn aktiviert, schränkt der Bitmaskenwert ein, welche Protokolle libcurl während der Übertragung verwenden kann. Dadurch können Sie viele Protokolle unterstützen, wenn Sie libcurl kompilieren, es aber auf eine Teilmenge der zulässigen Protokolle beschränken. Standardmäßig verwendet libcurl alle Protokolle, die es unterstützt. SieheCURLOPT_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 Hinzugefügt in cURL 7.19.4.
CURLOPT_PROTOCOLS CURLPROTO_*Bitmaske. Wenn aktiviert, schränkt der Bitmaskenwert ein, welche Protokolle libcurl während der Übertragung verwenden kann. Dadurch können Sie viele Protokolle unterstützen, wenn Sie libcurl kompilieren, es aber auf eine Teilmenge der zulässigen Protokolle beschränken. Standardmäßig verwendet libcurl alle Protokolle, die es unterstützt. SieheCURLOPT_REDIR_PROTOCOLSVerfügbare 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 Hinzugefügt in cURL 7.19.4.
CURLOPT_PROXYAUTH Authentifizierungsmethode für HTTP-Proxy-Verbindungen. Verwenden Sie dieCURLOPT_HTTPAUTHBitfeld-Flags, um die entsprechende Option festzulegen. Für die Proxy-Authentifizierung werden nurCURLAUTH_BASICundCURLAUTH_NTLMderzeit unterstützt. Hinzugefügt in cURL 7.10.7.
CURLOPT_PROXYPORT Proxy-Server-Port. Der Port kann auch inCURLOPT_PROXYfestgelegt werden
CURLOPT_PROXYTYPE ist nichtCURLPROXY_HTTP(Standardwert) oderCURLPROXY_SOCKS5。 Hinzugefügt in cURL 7.10.
CURLOPT_REDIR_PROTOCOLS CURLPROTO_*Der Bitfeld-Wert. Wenn aktiviert, schränkt der Bitfeld-Wert den Transfer-Thread aufCURLOPT_FOLLOWLOCATIONdie Protokolle ein, die beim Folgen einer Weiterleitung verwendet werden können. Dadurch können Sie den Transfer-Thread während Weiterleitungen auf eine Teilmenge der zulässigen Protokolle beschränken. Standardmäßig erlaubt libcurl alle Protokolle außer FILE und SCP. Dies unterscheidet sich etwas von der Vorabversion 7.19.4, die bedingungslos allen unterstützten Protokollen folgte. Für Protokollkonstanten beachten Sie bitteCURLOPT_PROTOCOLS。 Hinzugefügt in cURL 7.19.4.
CURLOPT_RESUME_FROM Übergeben Sie einen Byte-Offset beim Fortsetzen der Übertragung (wird zum Fortsetzen unterbrochener Übertragungen verwendet).
CURLOPT_SSL_VERIFYHOST 1 Prüfen Sie, ob ein Common Name im SSL-Zertifikat des Servers vorhanden ist. Hinweis des Übersetzers: Der Common Name bezieht sich im Allgemeinen auf die Domain oder Subdomain, für die Sie gerade ein SSL-Zertifikat beantragen möchten. 2 Prüfen Sie, ob der Common 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 manuell festgelegt werden muss.
CURLOPT_TIMECONDITION WennCURLOPT_TIMEVALUEnach der angegebenen Zeit bearbeitet wurde, verwenden SieCURL_TIMECOND_IFMODSINCE, um die Seite zurückzugeben; wenn sie nicht geändert wurde, undCURLOPT_HEADERwahr ist, geben Sie einen"304 Not Modified"Header zurück,CURLOPT_HEADERfalsch ist, verwenden SieCURL_TIMECOND_IFUNMODSINCE, der Standard istCURL_TIMECOND_IFUNMODSINCE。
CURLOPT_TIMEOUT Legen Sie die maximale Anzahl von Sekunden fest, die cURL ausgeführt werden darf.
CURLOPT_TIMEOUT_MS Legen Sie die maximale Anzahl von Millisekunden fest, die cURL ausgeführt werden darf. Hinzugefügt in cURL 7.16.2. Verfügbar ab PHP 5.2.3.
CURLOPT_TIMEVALUE Legen Sie einenCURLOPT_TIMECONDITIONZeitstempel fest, der verwendet werden soll; standardmäßig wirdCURL_TIMECOND_IFMODSINCE verwendet。

Für die folgenden Optionen sollte der Parameter value auf einen Zeichenfolgenwert gesetzt werden:

Option OptionalvalueWert Hinweise
CURLOPT_CAINFO Ein Dateiname, der ein oder mehrere Zertifikate zur Serververifizierung enthält. Dieser Parameter ist nur in Verbindung mitCURLOPT_SSL_VERIFYPEERsinnvoll. Er ist nur bei gemeinsamer Verwendung sinnvoll.
CURLOPT_CAPATH Ein Verzeichnis, das mehrere CA-Zertifikate enthält. Diese Option wird mitCURLOPT_SSL_VERIFYPEERverwendet. Sie wird zusammen verwendet.
CURLOPT_COOKIE Setzen Sie den"Cookie: "Teil der HTTP-Anfrage. Mehrere Cookies werden durch Semikolons getrennt, mit einem Leerzeichen nach dem Semikolon (z. B. "fruit=apple; colour=red").
CURLOPT_COOKIEFILE Der Dateiname, der Cookie-Daten enthält. Das Cookie-Dateiformat kann das Netscape-Format oder einfach in einer Datei gespeicherte reine HTTP-Header-Informationen sein.
CURLOPT_COOKIEJAR Die Datei, in die Cookie-Informationen nach dem Ende der Verbindung gespeichert werden.
CURLOPT_CUSTOMREQUEST

Verwenden Sie eine benutzerdefinierte Anfragenachricht anstelle von"GET"oder"HEAD"als HTTP-Anfrage. Dies ist nützlich zum Ausführen von"DELETE"oder andere eher unbekannte HTTP-Anfragen. Gültige Werte sind unter anderem"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.0\r\n\r\n"ist falsch.

Hinweis:

Verwenden Sie dies nicht, bevor Sie bestätigt haben, dass der Server diese benutzerdefinierte Anfragemethode unterstützt.

CURLOPT_EGDSOCKET Ähnlich wieCURLOPT_RANDOM_FILE, außer dass es sich um einen Entropy-Gathering-Daemon-Socket handelt.
CURLOPT_ENCODING Im HTTP-Anfrage-Header"Accept-Encoding: "Wert. Unterstützte Kodierungen sind"identity","deflate"und"gzip". Wenn eine leere Zeichenkette"", sendet der Request-Header 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-"POST"-Befehl erforderlich ist. Der "POST"-Befehl weist den Remote-Server an, sich mit der von uns angegebenen IP-Adresse zu verbinden. Diese Zeichenkette kann eine Klartext-IP-Adresse, ein Hostname, ein Name einer Netzwerkschnittstelle (unter UNIX) oder einfach ein "-" sein, um die Standard-IP-Adresse zu verwenden.
CURLOPT_INTERFACE Name der Netzwerkschnittstelle zum Senden; er kann ein Schnittstellenname, eine IP-Adresse oder ein Hostname sein.
CURLOPT_KRB4LEVEL KRB4-(Kerberos 4-)Sicherheitsstufe. Jeder der folgenden Werte ist gültig (in der Reihenfolge von niedrig nach hoch):"clear"、"safe"、"confidential"、"private".. Wenn die Zeichenkette keinem dieser Werte entspricht, wird"private". Wenn diese Option aufNULLgesetzt wird, wird die KRB4-Sicherheitsauthentifizierung deaktiviert. Derzeit kann die KRB4-Sicherheitsauthentifizierung nur für FTP-Übertragungen verwendet werden.
CURLOPT_POSTFIELDS Alle Daten werden mit der "POST"-Operation im HTTP-Protokoll gesendet. Um eine Datei zu senden, stellen Sie dem Dateinamen@prefix voran und verwenden Sie den vollständigen Pfad. Dieser Parameter kann eine URL-kodierte Zeichenkette ähnlich wie 'para1=val1&para2=val2&...' oder ein Array mit Feldnamen als Schlüssel und Felddaten als Werte sein. Wennvalueein Array ist, wird derContent-Type-Header aufmultipart/form-data gesetzt。
CURLOPT_PROXY HTTP-Proxy-Tunnel.
CURLOPT_PROXYUSERPWD A"[username]:[password]"Formatzeichenfolge, die zum Herstellen einer Verbindung mit dem Proxy verwendet wird.
CURLOPT_RANDOM_FILE Ein Dateiname, der zum Erzeugen des SSL-Zufallszahlen-Seeds verwendet wird.
CURLOPT_RANGE mit"X-Y"in der Form, wobei X und Y optional sind und den Bereich der abzurufenden Daten in Bytes angeben. Der HTTP-Transferthread unterstützt außerdem mehrere solcher wiederholten Elemente, die durch Kommas getrennt sind, wie z. B."X-Y,N-M"。
CURLOPT_REFERER Im HTTP-Anfrageheader"Referer: "Inhalt.
CURLOPT_SSL_CIPHER_LIST Eine Liste von SSL-Verschlüsselungsalgorithmen. Zum Beispiel sindRC4-SHAundTLSv1allesamt verfügbare Verschlüsselungslisten.
CURLOPT_SSLCERT Ein Dateiname, der ein Zertifikat im PEM-Format enthält.
CURLOPT_SSLCERTPASSWD Verwenden SieCURLOPT_SSLCERTdas vom Zertifikat benötigte Passwort.
CURLOPT_SSLCERTTYPE Zertifikatstyp. Unterstützte Formate sind"PEM"(Standard),"DER"und"ENG"。 Hinzugefügt in cURL 7.9.3.
CURLOPT_SSLENGINE Verwendet inCURLOPT_SSLKEYdie Variable der Verschlüsselungs-Engine für den SSL-Privatschlüssel, der angegeben ist in
CURLOPT_SSLENGINE_DEFAULT Die Variable, die für asymmetrische Verschlüsselungsoperationen verwendet wird.
CURLOPT_SSLKEY Der Dateiname, der den SSL-Privatschlüssel enthält.
CURLOPT_SSLKEYPASSWD

InCURLOPT_SSLKEYDas Passwort für den privaten SSL-Schlüssel, angegeben in

Hinweis:

Da diese Option sensible Passwortinformationen enthält, denken Sie daran, die Sicherheit dieses PHP-Skripts zu gewährleisten.

CURLOPT_SSLKEYTYPE CURLOPT_SSLKEYDer Verschlüsselungstyp des privaten Schlüssels, der in ... angegeben ist. Unterstützte Schlüsseltypen sind"PEM"(Standard),"DER"und"ENG"。
CURLOPT_URL Die abzurufende URL, die auch in der Funktioncurl_init()festgelegt werden kann.
CURLOPT_USERAGENT Fügen Sie eine"User-Agent: "Header-Zeichenfolge in die HTTP-Anfrage ein.
CURLOPT_USERPWD Übergeben Sie den für die Verbindung erforderlichen Benutzernamen und das Passwort im Format:"[username]:[password]"。

Für die folgenden Optionen sollte der value-Parameter auf ein Array gesetzt werden:

Option OptionalvalueWert Hinweise
CURLOPT_HTTP200ALIASES Ein Array von 200 Antwortcodes. Die Antwortcodes im Array werden als korrekte Antworten betrachtet, andernfalls gelten sie als Fehler. Hinzugefügt in cURL 7.10.3.
CURLOPT_HTTPHEADER Ein Array, das verwendet wird, um HTTP-Header-Felder festzulegen. Verwenden Sie ein Array in der folgenden Form: array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE Eine Reihe von FTP-Befehlen, die auf dem Server ausgeführt werden, nachdem die FTP-Anfrage ausgeführt wurde.
CURLOPT_QUOTE Eine Reihe von FTP-Befehlen, die auf dem Server vor der FTP-Anfrage ausgeführt werden.

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

Option OptionalvalueWert
CURLOPT_FILE Legt den Speicherort der Ausgabedatei fest; der Wert ist ein Ressourcentyp und standardmäßig aufSTDOUT(Browser).
CURLOPT_INFILE Der Dateispeicherort, von dem beim Hochladen einer Datei gelesen wird; der Wert ist ein Ressourcentyp.
CURLOPT_STDERR Legt einen Speicherort für die Fehlerausgabe fest; der Wert ist ein Ressourcentyp und ersetzt den StandardSTDERR。
CURLOPT_WRITEHEADER Legt den Dateispeicherort zum Schreiben des Inhalts des Header-Abschnitts fest; der Wert ist ein Ressourcentyp.

Für die folgenden Optionen sollte der Wertparameter auf den Namen einer Callback-Funktion gesetzt werden:

Option OptionalvalueWert
CURLOPT_HEADERFUNCTION Setzt eine Callback-Funktion mit zwei Parametern: Der erste ist das cURL-Ressourcen-Handle, der zweite sind die ausgegebenen Header-Daten. Die Ausgabe der Header-Daten muss über diese Funktion erfolgen. Gibt die Größe der geschriebenen Daten zurück.
CURLOPT_PASSWDFUNCTION Setzt eine Callback-Funktion mit drei Parametern: Der erste ist das cURL-Ressourcen-Handle, der zweite ist eine Passwortaufforderung und der dritte ist die maximal zulässige Passwortlänge. Gibt den Passwortwert zurück.
CURLOPT_PROGRESSFUNCTION Legt eine Callback-Funktion mit drei Parametern fest: Der erste ist das cURL-Ressourcen-Handle, der zweite ist eine Dateideskriptor-Ressource und der dritte ist die Länge. Gibt die enthaltenen Daten zurück.
CURLOPT_READFUNCTION Name der Callback-Funktion. Diese Funktion sollte drei Parameter akzeptieren. Der erste ist eine cURL-Ressource; der zweite ist die Stream-Ressource, die über die OptionCURLOPT_INFILEan cURL übergeben wird; der dritte Parameter ist die maximale Datenmenge, die gelesen werden kann. Die Callback-Funktion muss eine Zeichenkette mit einer Länge kleiner oder gleich der angeforderten Datenmenge (der dritte Parameter) zurückgeben. Im Allgemeinen wird aus der übergebenen Stream-Ressource gelesen. Die Rückgabe einer leeren Zeichenkette alsEOF(Ende der Datei)-Signal.
CURLOPT_WRITEFUNCTION Name der Callback-Funktion. Diese Funktion sollte zwei Parameter akzeptieren. Der erste ist eine cURL-Ressource; der zweite ist der zu schreibende Daten-String. Die Daten müssen in der Funktion gespeichert werden. Die Funktion muss die exakte Anzahl an Bytes der übergebenen Daten zurückgeben, die geschrieben werden sollen, andernfalls wird die Übertragung durch einen Fehler unterbrochen.

Rückgabewerte

Gibt bei Erfolg TRUE zurück, bei Fehlschlag FALSE.


Änderungsprotokoll

Version Beschreibung
5.2.10 EingeführtCURLOPT_PROTOCOLS, und CURLOPT_REDIR_PROTOCOLS.
5.1.0 EingeführtCURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH, und CURLOPT_TIMECONDITION.
5.0.0 EingeführtCURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE, und CURLOPT_HTTP200ALIASES.

Beispiele

Initialisieren Sie eine neue cURL-Sitzung und rufen Sie eine Webseite ab

<?php
// 创建一个新cURL资源
$ch = curl_init();

// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// 抓取URL并把它传递给浏览器
curl_exec($ch);

//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

Beispiel für einen Datei-Upload:

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

Das obige Beispiel gibt Folgendes aus:

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)


Hinweise

Wenn ein Array an CURLOPT_POSTFIELDS übergeben wird, veranlasst dies cURL, die Daten als multipart/form-data zu kodieren, während die Übergabe einer URL-kodierten Zeichenkette bewirkt, dass die Daten als application/x-www-form-urlencoded kodiert werden.


PHP Calendar 参考手册PHP-cURL-Referenz

Andere Erweiterungen