English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP curl_setopt() 函数用法及示例

PHP CURL Referenzhandbuch

(PHP 4 >= 4.0.2, PHP 5[size] =>

curl_setopt — 设置一个CURL传输选项。

语法

Syntax

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

eine Option für den angegebenen CURL-Session-Handle setzen.

Parameter

ch

von curl_init() zurückgegebenen CURL-Handle.

option

value

CURLOPT_XXX-Optionen, die gesetzt werden müssen.

wird der Wert auf die Option gesetzt.

OptionOptionalvalueWertAnmerkung
CURLOPT_AUTOREFERERfür die folgenden Optionen optionalen Parameter, sollte der Wert ein boolscher Wert sein:WennWenn umgeleitet wird, wird automatisch der Header "Location:" im Header gesetzt.Referer:Informationen.
CURLOPT_BINARYTRANSFERWenn aktiviert, wirdCURLOPT_RETURNTRANSFERwenn, gibt die ursprüngliche (Roh-)Ausgabe zurück.
CURLOPT_COOKIESESSIONWenn aktiviert, sendet curl nur eine Session-Cookie und ignoriert andere Cookies. Standardmäßig gibt CURL alle Cookies an den Server zurück. Eine Session-Cookie ist eine Cookie, die existiert, um die Gültigkeit der Server-Session zu überprüfen.
CURLOPT_CRLFWenn aktiviert, werden Unix-Zeilenumbrüche in Carriage Return Line Feed (CRLF) umgewandelt.
CURLOPT_DNS_USE_GLOBAL_CACHEWenn aktiviert, wird ein globaler DNS-Cache aktiviert, dieser ist thread-sicher und ist standardmäßig aktiviert.
CURLOPT_FAILONERRORZeigt den HTTP-Statuscode an. Der Standardverhalten ist, Nummern kleiner gleich400 HTTP-Informationen.
CURLOPT_FILETIMEWenn aktiviert, wird versucht, Informationen im Remote-Dokument zu ändern. Die Ergebnisse werden über die FunktionCURLINFO_FILETIMEOptionen zurückgegeben.            curl_getinfo().
im Bitfeldwert. Wenn aktiviert, beschränkt der Bitfeldwert die Übertragungsdatenstränge aufWenn aktiviert, wird die von dem Server zurückgegebene"Location: "Wird rekursiv in den Header zurückgegeben und verwendetCURLOPT_MAXREDIRSDie Anzahl der rekursiven Rückgaben kann begrenzt werden.
CURLOPT_FORBID_REUSEVerbindungen müssen nach Abschluss des Interakts gezwungenermaßen getrennt werden und können nicht wiederverwendet werden.
CURLOPT_FRESH_CONNECTZwangsläufig eine neue Verbindung zu erhalten, anstatt die im Cache gespeicherte Verbindung zu verwenden.
CURLOPT_FTP_USE_EPRTWenn aktiviert, wird bei FTP-Downloads der EPRT (oder LPRT)-Befehl verwendet. Einstellen vonFALSEWird EPRT und LPRT deaktiviert, wenn "only." eingestellt ist, und der PORT-Befehl verwendet.            nur.
CURLOPT_FTP_USE_EPSVWenn aktiviert, wird vor dem Umschalten ins PASV-Modus im FTP-Übertragungsprozess zunächst der EPSV-Befehl versucht. Einstellen vonFALSEEPSV-Befehl wird deaktiviert.
CURLOPT_FTPAPPENDAktiviert, wird das Einfügen in die Datei anstatt des Überschreibens verwendet.
CURLOPT_FTPASCIICURLOPT_TRANSFERTEXTals Alias.
CURLOPT_FTPLISTONLYAktiviert, werden nur die Namen der FTP-Verzeichnisse aufgelistet.
CURLOPT_HEADERAktiviert, wird die Header-Information als Datenstrom ausgegeben.
CURLINFO_HEADER_OUTAktiviert, wird der Request-String des Handles verfolgt.von PHP 500ALIASES100ALIASES3 开始可用。CURLINFO_der Präfix ist absichtlich (intentional).
CURLOPT_HTTPGETAktiviert, wird der HTTP-Method auf GET gesetzt, da GET standardmäßig ist, wird dies nur bei geänderter Einstellung verwendet.
CURLOPT_HTTPPROXYTUNNELAktiviert, wird über einen HTTP-Proxy übertragen.
CURLOPT_MUTEAktiviert, werden alle geänderten Parameter in den CURL-Funktionen auf den Standardwert zurückgesetzt.
CURLOPT_NETRCNachdem die Verbindung hergestellt wurde, können Sie auf ~ zugreifen/.netrc-Datei, um Benutzername und Passwortinformationen zum Verbinden mit Remote-Sites abzurufen.
CURLOPT_NOBODYAktiviert, wird der Ausgabe des HTML-BODY-Teils nicht durchgeführt.
CURLOPT_NOPROGRESS

Aktiviert, wird die Fortschrittsanzeige der CURL-Übertragung deaktiviert. Der Standardwert dieser Option ist aktiviert.

Hinweis:

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


CURLOPT_NOSIGNALAktiviert, werden alle von CURL an PHP weitergegebenen Signale ignoriert. Bei SAPI-Mehrfachthread-Übertragungen ist diese Option standardmäßig aktiviert. Dies sollte nur zur Debugging-Zwecke geändert werden.CURL 700ALIASES10hinzugefügt.
CURLOPT_POSTAktiviert, wird eine reguläre POST-Anfrage gesendet, Typ:application/x-www-form-urlencodedeingerichtet werden, genau wie bei einer Formularübergabe.
CURLOPT_PUTAktiviert, wird es HTTP die Möglichkeit geben, Dateien zu senden, dies muss gleichzeitig mitCURLOPT_INFILEundCURLOPT_INFILESIZE
CURLOPT_RETURNTRANSFERum die von curl_exec() gewonnenen Informationen als Dateistrom zurückzugeben, anstatt sie direkt auszugeben.
Verzeichnis, das mehrere CA-Zertifikate enthält. Diese Option ist nur sinnvoll, wenn sie mitDeaktiviert, wird CURL die Überprüfung von Serviceendpunkten beenden. Verwenden SieCURLOPT_CAINFOOption zur Einstellung der Zertifikatsnutzungzusammen verwendet wird.Option zur Einstellung des Zertifikatsverzeichnisses            wennVerzeichnis, das mehrere CA-Zertifikate enthält. Diese Option ist nur sinnvoll, wenn sie mit(Standardwert2) wurde aktiviert,während der Wiederherstellung der Übertragung einen Bytes-Offset übergeben (wird für die Wiederaufnahme der Übertragung verwendet).muss auf den Standardwert eingestellt werdenTRUEsonst auf den Standardwert setzenFALSESeit CURL 700ALIASES10Standardmäßig eingestelltTRUE. Ab CURL 700ALIASES10Starten Sie die Standardbindung der Installation.
CURLOPT_TRANSFERTEXTAktiviert, wird für FTP-Übertragungen der ASCII-Modus verwendet. Für LDAP wird rein textbasierte Informationen statt HTML abgerufen. Auf Windows-Systemen wird das System dies nicht tunSTDOUT设置成binary模式。
CURLOPT_UNRESTRICTED_AUTH在使用im Bitfeldwert. Wenn aktiviert, beschränkt der Bitfeldwert die Übertragungsdatenstränge auf在产生的header中的多个locations中持续追加用户名和密码信息,即使域名已发生改变。
CURLOPT_UPLOAD启用后允许文件上传。
CURLOPT_VERBOSE启用时会报告所有的信息,存放在STDERR或指定的CURLOPT_STDERR中。

对于下面的这些option的可选参数,value应该被设置一个integer类型的值:

OptionOptionalvalueWertAnmerkung
CURLOPT_BUFFERSIZE每次获取的数据中读入缓存的大小,但是不保证这个值每次都会被填满。In CURL 700ALIASES10wird hinzugefügt.
CURLOPT_CLOSEPOLICY不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,还存在另外三个CURLCLOSEPOLICY,但是CURL暂时还不支持。
CURLOPT_CONNECTTIMEOUT在发起连接前等待的时间,如果设置为0,则无限等待。
CURLOPT_CONNECTTIMEOUT_MS尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。In CURL 700ALIASES1600ALIASES2hinzugefügt. 500ALIASES200ALIASES3开始可用。
CURLOPT_DNS_CACHE_TIMEOUT设置在内存中保存DNS信息的时间,默认为120秒。
CURLOPT_FTPSSLAUTHFTP验证方式:CURLFTPAUTH_SSL (首先尝试SSL),CURLFTPAUTH_TLS (首先尝试TLS)或CURLFTPAUTH_DEFAULT (让CURL自动决定)。In CURL 700ALIASES1200ALIASES2wird hinzugefügt.
CURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_NONE (默认值,让CURL自行判断使用哪个版本),CURL_HTTP_VERSION_1_0 (强制使用 HTTP/1.0)或CURL_HTTP_VERSION_1_1 (强制使用 HTTP/100ALIASES1)。
CURLOPT_INFILESIZE设置上传文件的大小限制,以字节(byte)为单位。
CURLOPT_LOW_SPEED_LIMIT当传输速度小于CURLOPT_LOW_SPEED_LIMIT字节(bytes)/秒),PHP会根据CURLOPT_LOW_SPEED_TIME来判断是否因传输过慢而取消传输。
CURLOPT_LOW_SPEED_TIME当传输速度小于CURLOPT_LOW_SPEED_LIMIT字节(bytes)/秒),PHP会根据CURLOPT_LOW_SPEED_TIME来判断是否因传输过慢而取消传输。
CURLOPT_MAXCONNECTS允许的最大连接数量,超过时将通过CURLOPT_CLOSEPOLICY决定应停止哪些连接。
CURLOPT_MAXREDIRS指定最多的HTTP重定向数量,此选项与im Bitfeldwert. Wenn aktiviert, beschränkt der Bitfeldwert die Übertragungsdatenstränge aufCURLOPT_COOKIE
CURLOPT_PORT用于指定连接端口。(可选)
CURLOPT_PROTOCOLSCURLPROXY_SOCKS*的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见CURLOPT_REDIR_PROTOCOLS.可用的协议选项为: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_ALLIn CURL 700ALIASES1900ALIASES4wird hinzugefügt.
CURLOPT_PROTOCOLSCURLPROXY_SOCKS*的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见CURLOPT_REDIR_PROTOCOLS.可用的协议选项为: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_ALLIn CURL 700ALIASES1900ALIASES4wird hinzugefügt.
CURLOPT_PROXYAUTHBitfeldangabe. Wenn aktiviert, beschränkt der Bitfeldwert die Protokolle, die libcurl während der Übertragung verwenden kann. Dies ermöglicht es Ihnen, bei der Kompilierung von libcurl viele Protokolle zu unterstützen, aber nur eine Untergruppe der erlaubten Protokolle zu verwenden. Standardmäßig verwendet libcurl alle unterstützten Protokolle. SieheCURLOPT_BUFFERSIZEverwendet. Verfü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_ALLHTTP-Proxy-Verbindungsauthentifizierungsmethoden. Diese werden inundBitfeldflagge gesetzt werden. Für Proxy-Authentifizierung gibt es nurCURLAUTH_BASICIn CURL 700ALIASES1000ALIASES7wird hinzugefügt.
CURLOPT_HTTPAUTHCURLAUTH_NTLMCURLOPT_PROXYderzeit unterstützt.
CURLOPT_PROXYPORTeingerichtet werden. Der Port des Proxy-Servers kann auch innicht CURLPROXY_HTTP(Standardwert) ist5In CURL 700ALIASES10wird hinzugefügt.
CURLOPT_REDIR_PROTOCOLSCURLPROXY_SOCKS*CURLPROTO_im Bitfeldwert. Wenn aktiviert, beschränkt der Bitfeldwert die Übertragungsdatenstränge aufCURLOPT_FOLLOWLOCATION700ALIASES1900ALIASES4bei der Aktivierung können verwendete Protokolle. Dies ermöglicht es Ihnen, bei Redirektionen die übertragbaren Protokollsubset zu beschränken, das durch den Standardlibcurl erlaubt wird. Dies istCURLOPT_PROTOCOLSIn CURL 700ALIASES1900ALIASES4wird hinzugefügt.
Unbedingte Verfolgung aller unterstützten Protokolle in Vorabversionen. Weitere Informationen zu Protokollkonstanten finden SieCURLOPT_RESUME_FROM
während der Wiederherstellung der Übertragung einen Bytes-Offset übergeben (wird für die Wiederaufnahme der Übertragung verwendet).1 CURLOPT_SSL_VERIFYHOST2 überprüft, ob ein öffentlicher Name existiert und ob er mit dem angegebenen Hostnamen übereinstimmt. Übersetzerhinweis: Der öffentliche Name (Common Name) ist in der Regel der zu beantragende Domänenname (domain) oder Subdomäne (sub domain) für die SSL-Zertifikatsanwendung.
CURLOPT_SSLVERSIONverwendete SSL-Version (2 oder 3) verwendet. In der Standardkonfiguration überprüft PHP diesen Wert selbst, obwohl in einigen Fällen eine manuelle Einstellung erforderlich sein kann.
CURLOPT_TIMECONDITIONWenn inCURLOPT_TIMEVALUEnach einer bestimmten Zeit bearbeitet wurde, dann wirdCURL_TIMECOND_IFMODSINCERückgabeseite zurückgegeben, wenn die Seite nicht geändert wurde undCURLOPT_HEADERwenn dieser Wert auf true gesetzt ist, wird eine"304 Not Modified"Header,    CURLOPT_HEADERwenn false, dannCURL_TIMECOND_IFUNMODSINCE, Standardwert istCURL_TIMECOND_IFUNMODSINCE
CURLOPT_TIMEOUTCURL setzt die maximale Anzahl von Sekunden, die ausgeführt werden dürfen.
CURLOPT_TIMEOUT_MSCURL setzt die maximale Anzahl von Millisekunden, die ausgeführt werden dürfen.In CURL 700ALIASES1600ALIASES2hinzugefügt. 500ALIASES200ALIASES3von dem an nutzbar.
CURLOPT_TIMEVALUEeineCURLOPT_TIMECONDITIONverwendete Zeitstempel, standardmäßigCURL_TIMECOND_IFMODSINCE

Für die folgenden Optionen sind die Werte als Zeichenkette zu setzen:

OptionOptionalvalueWertAnmerkung
CURLOPT_CAINFOeine Datei, die1Dateinamen für eine oder mehrere Zertifikate, die zum Überprüfen durch den Server verwendet werden. Dieser Parameter ist nur dann relevant, wennVerzeichnis, das mehrere CA-Zertifikate enthält. Diese Option ist nur sinnvoll, wenn sie mit.
zusammen verwendet wird.CURLOPT_CAPATHVerzeichnis, das mehrere CA-Zertifikate enthält. Diese Option ist nur sinnvoll, wenn sie mitCURLOPT_COOKIE
zusammen verwendet.festgelegt im HTTP-Anfragekopf"Cookie: "Teil des Inhalts. Mehrere Cookies werden durch Semikolons getrennt, gefolgt von einem Leerzeichen (z.B., "fruit=apple; colour=red).
CURLOPT_COOKIEFILEDateiname, der Cookie-Daten enthält. Das Format der Cookie-Datei kann Netscape-Format sein oder einfach nur HTTP-Kopfzeileninformationen in die Datei schreiben.
CURLOPT_COOKIEJARDatei, in der Cookie-Informationen nach dem Verbindungsende gespeichert werden.
CURLOPT_CUSTOMREQUEST

ersetzen Sie eine benutzerdefinierte Anfrageinformation durch"GET"oder"HEAD"ist als HTTP-Anfrage. Dies ist nützlich für die Ausführung von"DELETE" oder andere weniger sichtbare HTTP-Anfragen. Gültige Werte wie"GET""POST""CONNECT"und so weiter. Das bedeutet, geben Sie hier nicht den gesamten HTTP-Anfrageinhalt ein. Zum Beispiel"GET" /index.html HTTP/1.0\r\n\r\n"ist falsch.

Hinweis:

Verwenden Sie dies nicht, bevor Sie bestätigen, dass der Server diese benutzerdefinierte Anfrage Methode unterstützt.


CURLOPT_EGDSOCKETähnlichCURLOPT_RANDOM_FILEaußer einem Socket des Entropy Gathering Daemons.
CURLOPT_ENCODINGim HTTP-Anfragekopf"Accept"-Encoding: "Wert. Unterstützte Encodings sind"identity""deflate"und"gzip". Wenn der String leer ist""und der Request-Header sendet alle unterstützten Kodierungstypen.In CURL 700ALIASES10wird hinzugefügt.
CURLOPT_FTPPORTDieser Wert wird verwendet, um die IP-Adresse zu erhalten, die für das FTP-"POST"-Kommando erforderlich ist. Das "POST"-Kommando teilt dem Remote-Server mit, dass er sich an die von uns angegebene IP-Adresse verbinden soll. Diese Zeichenfolge kann eine rein textuelle IP-Adresse, einen Hostnamen, einen Netzwerk-Interface-Namen (unter UNIX) oder einfach sein-'um die Standard-IP-Adresse zu verwenden.
CURLOPT_INTERFACENetzwerk-发送接口名,der ein Interface-Name, IP-Adresse oder ein Hostname sein kann.
CURLOPT_KRB4LEVELKRB4 (Kerberos 4) Sicherheitsstufe. Jeglicher Wert ist gültig (in der Reihenfolge von niedrig bis hoch):"clear""safe""confidential""private" verwendet.. Wenn der String nicht mit diesen übereinstimmt, wird"private". Diese Option wird aufNULLausgeschaltet.4 Sicherheitszertifizierung. Derzeit wird KRB4 Sicherheitszertifizierung kann nur für FTP-Übertragungen verwendet werden.
CURLOPT_POSTFIELDSgesendet werden. Um eine Datei zu senden, fügen Sie vor dem Dateinamen@Vorsilbe und verwenden Sie den vollständigen Pfad. Dieser Parameter kann durch eine urlencoded-String ähnlichpara1=val1¶2=val2&...oder verwenden Sie ein Array mit dem Feldnamen als Schlüssel und dem Felddaten als Wert. Wennvalueist ein Array,Inhalt-TypDer Header wird aufmultipart/form-data
CURLOPT_PROXYHTTP-Proxy-Kanal.
CURLOPT_PROXYUSERPWDEin Name, um eine Verbindung zu einem Proxy herzustellen."[username]:[password]"Format.
CURLOPT_RANDOM_FILEEin Dateiname, der verwendet wird, um eine SSL-Zufallssamen zu generieren.
CURLOPT_RANGEmit"X-Y"in Form, wobei X und Y optionale Datenbereichsangaben sind, in Bytes gezählt. HTTP-Übertragungsthreads unterstützen auch mehrere solche Wiederholungen, durch Kommas getrennt, wie"X-Y,N-M"
CURLOPT_REFERERim HTTP-Anfragekopf"Referer: "Inhalt.
CURLOPT_SSL_CIPHER_LISTEine Liste der SSL-Verschlüsselungsalgorithmen. Zum BeispielRC4-SHAundTLSv1sind verfügbare Verschlüsselungslisten.
CURLOPT_SSLCERTEin Dateiname, der eine PEM-Formatzertifikat enthält.
CURLOPT_SSLCERTPASSWDVerwendenCURLOPT_SSLCERTPasswort für das Zertifikat.
,Typ des Zertifikats. Unterstützte Formate sind"PEM" (Standardwert), "DER"und"ENG"In CURL 700ALIASES900ALIASES3wird hinzugefügt.
CURLOPT_SSLENGINEVerwenden, umCURLOPT_SSLKEYfestgelegte Variable des SSL-privaten Schlüssels für die Verschlüsselungsebene.
CURLOPT_SSLENGINE_DEFAULTVariable, die für asymmetrische Verschlüsselungsoperationen verwendet wird.
CURLOPT_SSLKEYDateiname der Datei, die den SSL-privaten Schlüssel enthält.
CURLOPT_SSLKEYPASSWD

InCURLOPT_SSLKEYfestgelegte Passwort des SSL-privaten Schlüssels.

Hinweis:

Da dieser Option sensible Passwortinformationen enthalten kann, stellen Sie sicher, dass der PHP-Skript sicher ist.


CURLOPT_SSLKEYTYPECURLOPT_SSLKEYfestgelegte Verschlüsselungstyp des privaten Schlüssels, unterstützte Schlüsseltypen sind"PEM"(Standardwert),"DER"und"ENG"
CURLOPT_URLZu erhebende URL-Adresse, kann auch in der Funktion curl_init() eingestellt werden.
CURLOPT_USERAGENTEine im HTTP-Anfrage enthaltenen"User-Agent: "Kopfzeilenstring.
CURLOPT_USERPWDÜbermitteln eines Benutzernamens und Passworts, das für die Verbindung erforderlich ist, Format:"[username]:[password]"

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

OptionOptionalvalueWertAnmerkung
, und2CURLOPT_HTTP200 Statuscode-Array, wobei die Statuscodes im Array als richtige Antworten betrachtet werden, andernfalls als falsche Antworten.In CURL 700ALIASES1000ALIASES3wird hinzugefügt.
CURLOPT_HTTPHEADEREin Array, das zur Einstellung von HTTP-Header-Feldern verwendet wird. Die Einstellung erfolgt in folgender Form des Arrays:                       array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTEEine Gruppe von FTP-Befehlen, die nach Abschluss der FTP-Anfrage auf dem Server ausgeführt werden.
CURLOPT_QUOTEEine Gruppe von FTP-Befehlen, die vor der FTP-Anfrage auf dem Server ausgeführt werden.

Für die folgenden optionale Parameter der Optionen sollte der Wert auf einen Stream-Ressourcentyp (z.B. mit fopen()) gesetzt werden:

OptionOptionalvalueWert
CURLOPT_FILEEinstellen des Positions der Ausgabedatei, der Wert ist eine Ressourcentyp, Standard istSTDOUT (Browser).
CURLOPT_INFILEBei der Dateiupload-Operation erforderliche Dateiadresse, der Wert ist eine Ressourcentyp.
CURLOPT_STDERREinstellen eines Fehlerausgabe-Adresses, der Wert ist eine Ressourcentyp, ersetzt den StandardwertSTDERR
CURLOPT_WRITEHEADERSetzen Sie die Dateiadresse für die Schreiboperation des Header-Teils, der Wert ist eine Ressourcentyp.

Für die optionalen Parameter der folgenden Optionen sollte der Wert ein Callback-Funktionsnamen sein:

OptionOptionalvalueWert
CURLOPT_HEADERFUNCTIONSetzen Sie eine Callback-Funktion, die zwei Parameter hat, den ersten ist der CURL-Resource-Handler, der zweite ist die auszugebenden Header-Daten. Die Ausgabe der Header-Daten muss von dieser Funktion abhängen, gibt die bereits geschriebene Datengröße zurück.
CURLOPT_PASSWDFUNCTIONSetzen Sie eine Callback-Funktion mit drei Parametern, dem ersten ist der CURL-Resource-Handler, der zweite ist ein Passwort-Prompt, der dritte Parameter ist die maximale zulässige Passwortlänge. Gibt den Passwortwert zurück.
CURLOPT_PROGRESSFUNCTIONSetzen Sie eine Callback-Funktion mit drei Parametern, dem ersten ist der CURL-Resource-Handler, der zweite ist eine Dateideskriptor-Ressource, der dritte ist die Länge. Gibt die enthaltenen Daten zurück.
CURLOPT_READFUNCTIONName der Callback-Funktion. Diese Funktion sollte drei Parameter akzeptieren. Der erste ist der CURL-Resource; der zweite ist die Option, die durch den Parameter CURLOPT_INFILE Dem CURL übergebene Stream-Ressource; der dritte Parameter ist die maximale Anzahl der lesbaren Daten. Rück Die Callback-Funktion muss eine Zeichenkette zurückgeben, deren Länge kleiner oder gleich der angeforderten Datenmenge (dritter Parameter) ist. Normalerweise wird der Stream... Lesen des Ressourcens. Gibt eine leere Zeichenkette zurück als EOFSignale für das Dateiende.
CURLOPT_WRITEFUNCTIONName der Callback-Funktion. Diese Funktion sollte zwei Parameter akzeptieren. Der erste ist der CURL-Resource; der zweite ist der Datenstring, der geschrieben werden soll. Die Daten... Die Daten müssen im Funktionsspeicher gespeichert werden. Die Funktion muss die genaue Anzahl der einzuschreibenden Bytes zurückgeben, sonst wird die Übertragung durch einen Fehler unterbrochen. Abbruch.

Rückgabewert

Gibt TRUE zurück, wenn erfolgreich, oder FALSE, wenn fehlgeschlagen.

Aktualisierungsprotokoll

VersionErklärung
500ALIASES200ALIASES10Einführung CURLOPT_PROTOCOLSCURLOPT_SSLCERTTYPECURLOPT_REDIR_PROTOCOLS00ALIASES
500ALIASES1.0Einführung CURLOPT_AUTOREFERERCURLOPT_PROXYTYPECURLOPT_BINARYTRANSFERCURLOPT_PROXYTYPECURLOPT_FTPSSLAUTHCURLOPT_PROXYTYPECURLOPT_PROXYAUTHCURLOPT_SSLCERTTYPECURLOPT_TIMECONDITION00ALIASES
5.0.0Einführung CURLOPT_FTP_USE_EPRTCURLOPT_PROXYTYPECURLOPT_NOSIGNALCURLOPT_PROXYTYPECURLOPT_UNRESTRICTED_AUTHCURLOPT_PROXYTYPECURLOPT_BUFFERSIZECURLOPT_PROXYTYPECURLOPT_BUFFERSIZECURLOPT_PROXYTYPECURLOPT_HTTPAUTHCURLOPT_PROXYTYPECURLOPT_PROXYPORTCURLOPT_PROXYTYPE,CURLOPT_SSLCERTTYPE, und2CURLOPT_HTTP00ALIASES

.

Online-Beispiel

Dateiupload-Beispiel:
// Initialisiere eine neue CURL-Sitzung und hol eine Webseite
print_r($_FILES);
// Erstelle eine neue CURL-Ressource
Setze die URL und die entsprechenden Optionen//curl_setopt($ch, CURLOPT_URL, "http:3codebox.com/www.w
");
// curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//Greife auf die URL zu und leite sie an den Browser weiter
Schließe die CURL-Ressource und befreie die Systemressourcen
curl_exec($ch);

curl_close($ch);

Dateiupload-Beispiel:
/* <?php//curl_setopt($ch, CURLOPT_URL, 'http:/http:
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'); 1curl_setopt($ch, CURLOPT_POST,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

?>

[name] => Foo
[file] => Array
    Die folgenden Beispiel-Ausgabeergebnisse lauten wie folgt:
[size] =>
[name] => Foo
[file] => Array
    Array
        [file] => Array
            (
            [name] => test.png/[type] => image
            png /[tmp_name] =>/tmp
            phpcpjNeQ
            [error] => 0 279
        [size] =>
[size] =>

)

Kommentare/form-Daten an CURLOPT_POSTFIELDS übergeben, encodiert CURL die Daten in multipart.-Wenn eine encoded Zeichenkette übergeben wird, wird die Daten in application encoded./x-www-form-urlencoded.

PHP CURL Referenzhandbuch