Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in das Konzept und Anwendungsbeispiele der PHP-Funktion „curl_setopt“.

Einführung in das Konzept und Anwendungsbeispiele der PHP-Funktion „curl_setopt“.

怪我咯
怪我咯Original
2017-05-19 11:24:361526Durchsuche

Was macht die PHP-Funktion „curl_setopt“?

Die Funktion „curl_setopt“ ist eine wichtige Funktion in PHP. Sie wird zum Festlegen einer cURL-Übertragungsoption verwendet. Wie ist es also aufgebaut? Was sind die Parameter? Der Hauptzweck dieses Artikels besteht darin, Ihnen eine detaillierte Einführung in die Funktion

der Funktion curl_setopt in PHP zu geben.

Erster Blick auf die Syntaxbeschreibung

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

Parameterdetails:

ch

Das von curl_init() zurückgegebene cURL-Handle.

Option

CURLOPT_XXX Optionen, die festgelegt werden müssen.

Wert

Der Wert, der für die Option festgelegt wird.

PS: Beachten Sie hier, dass der Wert gemäß den von der Option ausgewählten Parametern wie folgt eingestellt wird

Für die optionalen Parameter des Bei den folgenden Optionen sollte der Wert auf einen Wert vom Typ „Bool“ gesetzt werden:



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

Optionen OptionalWertWert Bemerkungen
CURLOPT_AUTOREFERER Bei der Weiterleitung basierend auf Standort: werden automatisch die Referer:-Informationen in der Kopfzeile festgelegt.
CURLOPT_BINARYTRANSFER Wenn CURLOPT_RETURNTRANSFER aktiviert ist, wird das native ( Raw zurückgegeben ) Ausgabe.
CURLOPT_COOKIESESSION Wenn aktiviert, übergibt Curl nur ein Sitzungscookie und ignoriert andere Cookies Standard In diesem Fall gibt cURL alle Cookies an den Server zurück. Unter Sitzungscookies versteht man Cookies, die verwendet werden, um festzustellen, ob die serverseitige Sitzung gültig ist.
CURLOPT_CRLF Wenn aktiviert, werden Unix-Zeilenvorschübe in Wagenrücklauf-Zeilenvorschübe umgewandelt.
CURLOPT_DNS_USE_GLOBAL_CACHE Wenn aktiviert, wird ein globaler DNS-Cache aktiviert. sicher und ist standardmäßig aktiviert.
CURLOPT_FAILONERROR Zeigt den HTTP-Statuscode an. Das Standardverhalten besteht darin, HTTP-Nachrichten mit Zahlen zu ignorieren kleiner oder gleich 400 .
CURLOPT_FILETIME Wenn aktiviert, wird versucht, 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, gibt der Server " Standort zurück : „ wird im Header platziert und rekursiv an den Server zurückgegeben. Verwenden Sie CURLOPT_MAXREDIRS, um die Anzahl der rekursiven Rückgaben zu begrenzen.
CURLOPT_FORBID_REUSE Nach Abschluss der Interaktion wird die Verbindung zwangsweise getrennt und kann nicht wiederverwendet werden.
CURLOPT_FRESH_CONNECT Erzwingen Sie eine neue Verbindung, um die im Cache zu ersetzen.
CURLOPT_FTP_USE_EPRT Wenn aktiviert, verwenden Sie beim FTP-Download den Befehl EPRT (oder LPRT). Deaktivieren Sie EPRT und LPRT, wenn sie auf FALSE eingestellt sind. Verwenden Sie dazu den Befehl PORT Nur.
CURLOPT_FTP_USE_EPSV Wenn aktiviert, zuerst, bevor Sie während der FTP-Übertragung in den PASV-Modus zurückkehren. Versuchen Sie es EPSV-Befehl. Deaktiviert den EPSV-Befehl, wenn er auf FALSE gesetzt ist.
CURLOPT_FTPAPPEND Wenn aktiviert, wird „Anhängen“ in die Datei geschrieben, anstatt sie zu überschreiben. Alias ​​​​für
CURLOPT_FTPASCII 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 für das Tracking-Handle, wenn aktiviert. Verfügbar ab PHP 5.1.3. CURLINFO_Das Präfix ist beabsichtigt.
CURLOPT_HTTPGET Wenn diese Option aktiviert ist, wird die HTTP-Methode auf GET gesetzt und wird nur verwendet, wenn dies der Fall ist geändert.
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 Werte.
CURLOPT_NETRC Nachdem die Verbindung hergestellt wurde, greifen Sie auf die Datei zu, um den Benutzernamen und das Passwort zu erhalten um eine Verbindung zur Remote-Site herzustellen.
CURLOPT_NOBODY Wenn aktiviert, wird der BODY-Teil in HTML nicht ausgegeben.
CURLOPT_NOPROGRESS

Schließen Sie den Fortschrittsbalken der Curl-Übertragung, wenn diese aktiviert ist, die Standardeinstellung für Dieses Element auf „Aktiviert“ setzen.

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 Curl-Übergaben an das PHP-Signal . Dieses Element ist während der SAPI-Multithread-Übertragung standardmäßig aktiviert. cURL wurde in 7.10 hinzugefügt.
CURLOPT_POST Wenn aktiviert, wird eine reguläre POST-Anfrage gesendet, vom Typ: application/x-www-form- urlencodiert , genau wie Formularübermittlung.
CURLOPT_PUT ermöglicht HTTP das Senden von Dateien, wenn aktiviert, und muss außerdem CURLOPT_INFILE festlegen und CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER Gibt stattdessen die von curl_exec() erhaltenen Informationen in Form eines Dateistreams zurück der Direktausgabe.
CURLOPT_SSL_VERIFYPEER Wenn deaktiviert, beendet cURL die Überprüfung vom Server. Verwenden Sie die Option CURLOPT_CAINFO, um das Zertifikat festzulegen. Verwenden Sie die Option CURLOPT_CAPATH, um das Zertifikatverzeichnis festzulegen.           Wenn CURLOPT_SSL_VERIFYPEER (Standardwert ist 2) aktiviert ist, muss CURLOPT_SSL_VERIFYHOST auf TRUE gesetzt werden, andernfalls auf FALSE. ist seit cURL 7.10 standardmäßig TRUE. Ab cURL 7.10 ist die Bundle-Installation standardmäßig vorgesehen.
CURLOPT_TRANSFERTEXT Verwenden Sie den ASCII-Modus für FTP-Übertragungen, wenn aktiviert. Bei LDAP werden reine Textinformationen anstelle von HTML abgerufen. Auf Windows-Systemen setzt das System STDOUT nicht auf den Binärmodus.
CURLOPT_UNRESTRICTED_AUTH Mehrere Header generiert mit CURLOPT_FOLLOWLOCATION Benutzername und Passwortinformationen werden fortgesetzt an Standorte angehängt werden, auch wenn sich der Domänenname geändert hat.
CURLOPT_UPLOAD Aktivieren, um Datei-Uploads zuzulassen.
CURLOPT_VERBOSE Wenn aktiviert, werden alle Informationen gemeldet und in STDERR oder das angegebene CURLOPT_STDERR.
CURLOPT_PROTOCOLSCURLPROTO_*CURLOPT_PROXYAUTHCURLAUTH_BASICCURLOPT_PROXYPORTLegen Sie die maximale Anzahl von Sekunden fest, die cURL ausführen darf. Legt die maximale Anzahl von Millisekunden fest, die cURL ausführen darf. wurde in cURL 7.16.2 hinzugefügt. Verfügbar ab PHP 5.2.3. Legen Sie einen Zeitstempel fest, der von



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

Optionen OptionalWertWert Bemerkungen
CURLOPT_BUFFERSIZE Die Größe des Caches, der jedes Mal in die erhaltenen Daten eingelesen wird. Es gibt jedoch keine Garantie dafür, dass dieser Wert jedes Mal gefüllt wird. wurde in cURL 7.10 hinzugefügt.
CURLOPT_CLOSEPOLICY Entweder CURLCLOSEPOLICY_LEAST_RECENTLY_USED oder CURLCLOSEPOLICY_OLDEST, aber cURL unterstützt sie noch nicht.
CURLOPT_CONNECTTIMEOUT Die Wartezeit, bevor eine Verbindung hergestellt wird warte auf unbestimmte Zeit.
CURLOPT_CONNECTTIMEOUT_MS Die Wartezeit in Millisekunden auf einen Verbindungsversuch. Wenn auf 0 gesetzt, unendlich warten. wurde in cURL 7.16.2 hinzugefügt. 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-Überprüfungsmethode: CURLFTPAUTH_SSL (versuchen Sie es zuerst mit SSL) , CURLFTPAUTH_TLS (versuchen Sie es zuerst mit TLS) oder CURLFTPAUTH_DEFAULT (cURL automatisch entscheiden lassen). wurde in cURL 7.12.2 hinzugefügt.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (Standardwert, lassen Sie cURL entscheiden, welche Version verwendet werden soll), CURL_HTTP_VERSION_1_0 (HTTP/1.0 erzwingen) oder CURL_HTTP_VERSION_1_1 (HTTP/1.1 erzwingen).
CURLOPT_INFILESIZE Legen Sie die Größenbeschränkung der hochgeladenen Dateien in Bytes fest.
CURLOPT_LOW_SPEED_LIMIT Wenn die Übertragungsgeschwindigkeit weniger als CURLOPT_LOW_SPEED_LIMIT (Bytes) beträgt /sec ), 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 weniger als CURLOPT_LOW_SPEED_LIMIT (Bytes) beträgt /sec ), 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, falls überschritten, CURLOPT_CLOSEPOLICY Entscheiden Sie, welche Verbindungen gestoppt werden sollen.
CURLOPT_MAXREDIRS Gibt die maximale Anzahl von HTTP-Weiterleitungen an. Diese Option ist dieselbe wie Wird zusammen mit CURLOPT_FOLLOWLOCATION verwendet.
CURLOPT_PORT wird verwendet, um den Verbindungsport anzugeben. (Optional)
CURLOPT_PROTOCOLS Bitfeldzeiger für CURLPROTO_* . Wenn diese Option aktiviert ist, begrenzt der Bitfeldwert, welche Protokolle libcurl während Übertragungen verwenden kann. Auf diese Weise können Sie libcurl so kompilieren, dass es ein breites Spektrum an Protokollen unterstützt, sich jedoch darauf beschränken, nur eine Teilmenge davon zu verwenden, die verwendet werden darf. Standardmäßig verwendet libcurl alle unterstützten Protokolle. Siehe CURLOPT_REDIR_PROTOCOLS LE, CURLPROTO_TFTP, CURLPROTO_ALL in cURL 7.19 wurde hinzugefügt. Die Bitfelder von
. Wenn diese Option aktiviert ist, begrenzt der Bitfeldwert, welche Protokolle libcurl während Übertragungen verwenden kann. Auf diese Weise können Sie libcurl so kompilieren, dass es ein breites Spektrum an Protokollen unterstützt, sich jedoch darauf beschränken, nur eine Teilmenge davon zu verwenden, die verwendet werden darf. Standardmäßig verwendet libcurl alle unterstützten Protokolle. Siehe CURLOPT_REDIR_PROTOCOLS LE, CURLPROTO_TFTP, CURLPROTO_ALL in cURL 7.19 wurde hinzugefügt.
Überprüfungsmethode für HTTP-Proxy-Verbindung. Verwenden Sie die Bitfeld-Flags in CURLOPT_HTTPAUTH, um die entsprechenden Optionen festzulegen. Für die Proxy-Authentifizierung werden derzeit nur und CURLAUTH_NTLM unterstützt. wurde in cURL 7.10.7 hinzugefügt.
Der Port des Proxyservers. Der Port kann auch in CURLOPT_PROXY eingestellt werden.
CURLOPT_PROXYTYPE ist entweder CURLPROXY_HTTP (Standard) oder CURLPROXY_SOCKS5. wurde in cURL 7.10 hinzugefügt. Der Bitfeldwert in
CURLOPT_REDIR_PROTOCOLS 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. wurde in cURL 7.19.4 hinzugefügt.
CURLOPT_RESUME_FROM Übergeben Sie bei der Wiederaufnahme der Übertragung einen Byte-Offset (wird für die Wiederaufnahme der Übertragung verwendet).
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 nach einer bestimmten Zeit, die durch CURLOPT_TIMEVALUE angegeben wird wurde bearbeitet, verwenden Sie CURL_TIMECOND_IFMODSINCE, um zur Seite zurückzukehren. Wenn es nicht geändert wurde und CURLOPT_HEADER wahr ist, wird ein „304 Not Modified“-Header angezeigt zurückgegeben. CURLOPT_HEADER falsch ist, verwenden Sie CURL_TIMECOND_IFUNMODSINCE und der Standardwert ist CURL_TIMECOND_IFUNMODSINCE.
CURLOPT_TIMEOUT
CURLOPT_TIMEOUT_MS
CURLOPT_TIMEVALUE CURLOPT_TIMECONDITION verwendet wird. Standardmäßig wird CURL_TIMECOND_IFMODSINCE verwendet .
CURLOPT_SSL_VERIFYPEERCURLOPT_COOKIE"Cookie: "“). Ersetzen Sie HEAD" als HTTP-Anfrage. Dies ist nützlich für die Ausführung von "DELETE""POST"Übergeben Sie den für eine Verbindung erforderlichen Benutzernamen und das Passwort im Format:
Optionen OptionalWertWert Bemerkungen
CURLOPT_CAINFO Ein Dateiname, der ein oder mehrere Zertifikate zur Serverüberprüfung enthält. Dieser Parameter ist nur sinnvoll, wenn er mit CURLOPT_SSL_VERIFYPEER verwendet wird. . Diese Option wird mit verwendet.
Legen Sie den Teil des HTTP fest Inhalte anfordern. Mehrere Cookies werden durch ein Semikolon gefolgt von einem Leerzeichen getrennt (z. B. „
Frucht=Apfel; Farbe=Rot
CURLOPT_COOKIEFILEDer Name der Datei, die Cookie-Daten enthält im Netscape-Format sein oder einfach die reinen HTTP-Header-Informationen in der Datei speichern.
CURLOPT_COOKIEJAR Eine Datei, die Cookie-Informationen speichert, nachdem die Verbindung beendet ist.
CURLOPT_CUSTOMREQUEST durch eine benutzerdefinierte Anforderungsnachricht GET"
oder
oder anderen verdeckteren HTTP-Anfragen. Zu den gültigen Werten gehören "GET", ,

"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, außer einem Entropy Gathering Daemon-Socket.
CURLOPT_ENCODING HTTP-Anfrageheader "Accept-Encoding: " Wert . Unterstützte Kodierungen sind "identity", "deflate" und "gzip". Wenn es sich um eine leere Zeichenfolge "" handelt, sendet der Anforderungsheader alle unterstützten Kodierungstypen. wurde in cURL 7.10 hinzugefügt.
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 sein kann ein Hostname.
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 Zeichenfolgen übereinstimmt, wird "private" verwendet. Wenn Sie diese Option auf NULL setzen, wird die KRB4-Sicherheitsauthentifizierung deaktiviert. Derzeit kann die KRB4-Sicherheitsauthentifizierung nur für die FTP-Übertragung verwendet werden.
CURLOPT_POSTFIELDS Alle Daten werden mit der Operation „POST“ im HTTP-Protokoll gesendet. Um eine Datei zu senden, stellen Sie dem Dateinamen @ voran und verwenden Sie den vollständigen Pfad. Dieser Parameter kann über eine URL-codierte Zeichenfolge wie „para1=val1¶2=val2&...“ oder über ein Array mit dem Feldnamen als Schlüssel und den Felddaten als Wert übergeben werden. Wenn value ein Array ist, wird der Header Content-Type auf multipart/form-data gesetzt.
CURLOPT_PROXY HTTP-Proxy-Kanal.
CURLOPT_PROXYUSERPWD A "[Benutzername]:[ Passwort]" Formatzeichenfolge.
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 ist der Bereich der erhaltenen optionalen Daten, gemessen in Bytes. Der HTTP-Übertragungsthread unterstützt auch mehrere solcher Duplikate, die durch Kommas getrennt sind, z. B. "X-Y,N-M".
CURLOPT_REFERER Im HTTP-Request-Header "Referer: " Inhalt .
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 Passwort erforderlich, um das CURLOPT_SSLCERT-Zertifikat zu verwenden.
CURLOPT_SSLCERTTYPE Der Typ des Zertifikats. Unterstützte Formate sind "PEM" (Standard), "DER" und "ENG". wurde in cURL 7.9.3 hinzugefügt.
CURLOPT_SSLENGINE Krypto-Engine-Variable, die für den in CURLOPT_SSLKEY angegebenen privaten SSL-Schlüssel verwendet wird.
CURLOPT_SSLENGINE_DEFAULT Variable, die für asymmetrische Verschlüsselungsvorgänge verwendet wird.
CURLOPT_SSLKEY Der Name der Datei, die den privaten SSL-Schlüssel enthält.
CURLOPT_SSLKEYPASSWD

SSL angegeben in CURLOPT_SSLKEY Das Passwort für der private Schlüssel.

Hinweis:

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


CURLOPT_SSLKEYTYPE CURLOPT_SSLKEY Der Verschlüsselungstyp des privaten Schlüssels. Die unterstützten Schlüsseltypen sind "PEM"(Standardwert), "DER" und "ENG".
CURLOPT_URL Die URL-Adresse, die abgerufen werden muss, kann auch in abgerufen werden curl_init()In Funktion setzen.
CURLOPT_USERAGENT Fügen Sie einen "User-Agent: "Header-Zeichenfolge.
CURLOPT_USERPWD „[Benutzername]:[Passwort]“.



Für diese Optionen unten optional Parameter, Wert sollte auf ein Array festgelegt werden:

Options can SelectvalueValue Remarks
选项 可选value 备注
CURLOPT_HTTP200ALIASES 200响应码数组,数组中的响应吗被认为是正确的响应,否则被认为是错误的。 在cURL 7.10.3中被加入。
CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组。使用如下的形式的数组进行设置:            array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE 在FTP请求执行完成后,在服务器上执行的一组FTP命令。
CURLOPT_QUOTE 一组先于FTP请求的在服务器上执行的FTP命令。
CURLOPT_HTTP200ALIASES200 Antwortcode-Array, die Antwort im Array wird als korrekte Antwort betrachtet, andernfalls wird sie als Fehler betrachtet. wurde in cURL 7.10.3 hinzugefügt. CURLOPT_HTTPHEADEREin Array, das zum Festlegen von HTTP-Headerfeldern verwendet wird. Verwenden Sie zum Festlegen ein Array der folgenden Form: array('Content-type: text/plain', 'Content-length: 100')CURLOPT_POSTQUOTEEine Reihe von FTP-Befehlen, die auf dem Server ausgeführt werden, nachdem die FTP-Anfrage ausgeführt wurde. CURLOPT_QUOTEEine Reihe von FTP-Befehlen, die vor der FTP-Anfrage auf dem Server ausgeführt werden sollen.


对于下面的这些option的可选参数,value应该被设置一个流资源 (例如使用fopen()):

选项 可选value
CURLOPT_FILE 设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。
CURLOPT_INFILE 在上传文件的时候需要读取的文件地址,值是一个资源类型。
CURLOPT_STDERR 设置一个错误输出地址,值是一个资源类型,取代默认的STDERR
CURLOPT_WRITEHEADER 设置header部分内容的写入的文件地址,值是一个资源类型。


对于下面的这些option的可选参数,value应该被设置为一个回调函数名:

选项 可选value
CURLOPT_HEADERFUNCTION 设置一个回调函数,这个函数有两个参数,第一个是cURL的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。
CURLOPT_PASSWDFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个密码提示符,第三个参数是密码长度允许的最大值。返回密码的值。
CURLOPT_PROGRESSFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个文件描述符资源,第三个是长度。返回包含的数据。
CURLOPT_READFUNCTION 回调函数名。该函数应接受三个参数。第一个是 cURL resource;第二个是通过选项            CURLOPT_INFILE 传给 cURL 的 stream resource;第三个参数是最大可以读取的数据的数量。回            调函数必须返回一个字符串,长度小于或等于请求的数据量(第三个参数)。一般从传入的 stream            resource 读取。返回空字符串作为 EOF(文件结束) 信号。
CURLOPT_WRITEFUNCTION 回调函数名。该函数应接受两个参数。第一个是 cURL resource;第二个是要写入的数据字符串。数            据必须在函数中被保存。函数必须返回准确的传入的要写入数据的字节数,否则传输会被一个错误所中            断。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。

实例 

初始化一个新的cURL会话并获取一个网页

<?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);
?>


上传文件实例:

<?php

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

$ch = curl_init();

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

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

curl_exec($ch);
?>

以上实例输出结果如下:

Einführung in das Konzept und Anwendungsbeispiele der PHP-Funktion „curl_setopt“.

注释

传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。

【相关文章推荐】

PHP curl_exec函数的用法实例详解

Das obige ist der detaillierte Inhalt vonEinführung in das Konzept und Anwendungsbeispiele der PHP-Funktion „curl_setopt“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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