In diesem Artikel wird hauptsächlich erläutert, wie Curl zum Abrufen von Remote-Bildern in PHP verwendet wird. Freunde, die diese benötigen, können sich auf
Curl erfordert PHP-Umgebungsunterstützung beziehen. Unabhängig davon, ob sie unterstützt wird oder nicht, müssen Sie im Allgemeinen das „;“ vor „extension=php_curl.dll“ in php.ini entfernen und IIS oder APACHE neu starten.
Der Code lautet wie folgt:
/* *@通过curl方式获取指定的图片到本地 *@ 完整的图片地址 *@ 要存储的文件名 */ function getImg($url = "", $filename = "") { //去除URL连接上面可能的引号 //$url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url ); $hander = curl_init(); $fp = fopen($filename,'wb'); curl_setopt($hander,CURLOPT_URL,$url); curl_setopt($hander,CURLOPT_FILE,$fp); curl_setopt($hander,CURLOPT_HEADER,0); curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1); //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来 curl_setopt($hander,CURLOPT_TIMEOUT,60); curl_exec($hander); curl_close($hander); fclose($fp); Return true; }
Beim Aufruf direkt getImg("/logo.jpg", "upload/image.jpg ")
Implementierungscode 2
Der Code lautet wie folgt:
<?php $url = "图片绝对地址/thumbnail.jpg"; $filename = 'curl.jpg'; getImg($url, $filename); /* *@通过curl方式获取制定的图片到本地 *@ 完整的图片地址 *@ 要存储的文件名 */ function getImg($url = "", $filename = "") { if(is_dir(basename($filename))) { echo "The Dir was not exits"; return false; } //去除URL连接上面可能的引号 $url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url ); $hander = curl_init(); $fp = fopen($filename,'wb'); curl_setopt($hander,CURLOPT_URL,$url); curl_setopt($hander,CURLOPT_FILE,$fp); curl_setopt($hander,CURLOPT_HEADER,0); curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1); //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来 curl_setopt($hander,CURLOPT_TIMEOUT,60); /*$options = array( CURLOPT_URL=> '/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg', CURLOPT_FILE => $fp, CURLOPT_HEADER => 0, CURLOPT_FOLLOWLOCATION => 1, CURLOPT_TIMEOUT => 60 ); curl_setopt_array($hander, $options); */ curl_exec($hander); curl_close($hander); fclose($fp); return true; } ?>
curl_setopt Setzt eine Option für einen CURL-Aufruf
bool curl_setopt (int ch, string option, gemischter Wert)
Die Funktion „curl_setopt()“ legt Optionen für eine CURL-Sitzung fest. Der Optionsparameter ist die gewünschte Einstellung und der Wert ist der von dieser Option angegebene Wert.
Die Werte der folgenden Optionen werden als lange Ganzzahlen verwendet (angegeben im Optionsparameter):
CURLOPT_INFILESIZE: Wenn Sie Laden Sie eine Datei hoch. Bei Remote-Sites teilt diese Option PHP die Größe der Datei mit, die Sie hochladen.
CURLOPT_VERBOSE: Wenn Sie möchten, dass CURL jedes unerwartete Ereignis meldet, legen Sie diese Option auf einen Wert ungleich Null fest.
CURLOPT_HEADER: Setzen Sie diese Option auf einen Wert ungleich Null, wenn Sie einen Header in die Ausgabe einschließen möchten.
CURLOPT_NOPROGRESS: Wenn Sie nicht möchten, dass PHP einen Fortschrittsbalken für CURL-Übertragungen anzeigt, setzen Sie diese Option auf einen Wert ungleich Null.
Hinweis: PHP setzt diese Option automatisch auf einen Wert ungleich Null. Sie sollten diese Option nur zu Debugging-Zwecken ändern.
CURLOPT_NOBODY: Wenn Sie den Körperteil nicht in die Ausgabe einbeziehen möchten, setzen Sie diese Option auf einen Wert ungleich Null.
CURLOPT_FAILONERROR: Wenn Sie möchten, dass PHP nicht angezeigt wird, wenn ein Fehler auftritt (HTTP-Code gibt einen Wert größer oder gleich 300 zurück), legen Sie diese Option auf einen Wert ungleich Null fest. Das Standardverhalten besteht darin, eine normale Seite zurückzugeben und den Code zu ignorieren.
CURLOPT_UPLOAD: Wenn Sie möchten, dass PHP sich auf das Hochladen vorbereitet, setzen Sie diese Option auf einen Wert ungleich Null.
CURLOPT_POST: Wenn Sie möchten, dass PHP einen regulären HTTP-POST ausführt, setzen Sie diese Option auf einen Wert ungleich Null. Dieser POST ist vom gewöhnlichen Typ application/x-www-from-urlencoded und wird hauptsächlich von HTML-Formularen verwendet.
CURLOPT_FTPLISTONLY: Setzen Sie diese Option auf einen Wert ungleich Null und PHP listet die Verzeichnisnamen für FTP auf.
CURLOPT_FTPAPPEND : Setzen Sie diese Option auf einen Wert ungleich Null und PHP wendet die Remote-Datei an, anstatt sie zu überschreiben.
CURLOPT_NETRC: Setzen Sie diese Option auf einen Wert ungleich Null und PHP sucht in Ihrer ~./netrc-Datei nach dem Benutzernamen und dem Passwort der Remote-Site, mit der Sie eine Verbindung herstellen möchten Zu. .
CURLOPT_FOLLOWLOCATION: Setzen Sie diese Option auf einen Header ungleich Null (wie „Standort:“), und der Server sendet ihn als Teil des HTTP-Headers (beachten Sie, dass dies rekursiv ist, sendet PHP einen Header der Form „Location:“).
CURLOPT_PUT: Setzen Sie diese Option auf einen Wert ungleich Null, um eine Datei über HTTP hochzuladen. Um diese Datei hochzuladen, müssen die Optionen CURLOPT_INFILE und CURLOPT_INFILESIZE festgelegt sein.
CURLOPT_MUTE: Setzen Sie diese Option auf einen Wert ungleich Null Wert, PHP Die CURL-Funktion ist völlig stumm.
CURLOPT_TIMEOUT: Legen Sie eine lange Ganzzahl als maximale Anzahl von Sekunden fest.
CURLOPT_LOW_SPEED_LIMIT: Legen Sie eine lange Ganzzahl fest, um zu steuern, wie viele Bytes gesendet werden.
CURLOPT_LOW_SPEED_TIME: Legen Sie eine lange Ganzzahl fest, um zu steuern, wie viele Sekunden die durch CURLOPT_LOW_SPEED_LIMIT angegebene Anzahl von Bytes übertragen werden soll.
CURLOPT_RESUME_FROM: Übergeben Sie einen langen Parameter, der die Byte-Offset-Adresse enthält (das Startformular, zu dem Sie übertragen möchten).
CURLOPT_SSLVERSION: Übergeben Sie einen langen Parameter, der die SSL-Version enthält. Standardmäßig erledigt PHP seine eigene harte Arbeit, für mehr Sicherheit müssen Sie es manuell festlegen.
CURLOPT_TIMECONDITION: Übergeben Sie einen langen Parameter, um anzugeben, wie mit dem Parameter CURLOPT_TIMEVALUE umgegangen werden soll. Sie können diesen Parameter auf TIMECOND_IFMODSINCE oder TIMECOND_ISUNMODSINCE setzen. Dies gilt nur für HTTP.
CURLOPT_TIMEVALUE: Übergibt eine Anzahl von Sekunden von 1970-1-1 bis heute. Diese Zeit wird als angegebener Wert von der Option CURLOPT_TIMEVALUE oder vom Standardwert TIMECOND_IFMODSINCE verwendet.
Die Werte der folgenden Optionen werden als Zeichenfolgen behandelt:
CURLOPT_URL: Dies ist die URL-Adresse, über die Sie abrufen möchten PHP. Sie können diese Option auch während der Initialisierung mit der Funktion „curl_init()“ festlegen.
CURLOPT_USERPWD: Übergeben Sie eine Zeichenfolge in der Form [Benutzername]:[Passwort] und verwenden Sie PHP, um eine Verbindung herzustellen.
CURLOPT_PROXYUSERPWD: Übergeben Sie eine Zeichenfolge im Format [Benutzername]:[Passwort], um eine Verbindung zum HTTP-Proxy herzustellen.
CURLOPT_RANGE: Übergeben Sie einen Bereich, den Sie angeben möchten. Es sollte im Format „X-Y“ vorliegen, wobei X oder Y ausgeschlossen sind. HTTP-Übertragungen unterstützen auch mehrere durch Kommas getrennte Intervalle (X-Y, N-M).
CURLOPT_POSTFIELDS: Übergeben Sie eine Zeichenfolge mit allen Daten als HTTP-"POST"-Operation.
CURLOPT_REFERER: Eine Zeichenfolge, die einen „Referer“-Header in der HTTP-Anfrage enthält.
CURLOPT_USERAGENT: Eine Zeichenfolge, die einen „User-Agent“-Header in der HTTP-Anfrage enthält.
CURLOPT_FTPPORT : Übergeben Sie eine IP-Adresse, die die IP-Adresse enthält, die vom FTP-Befehl „POST“ verwendet wird. Diese POST-Anweisung weist den Remote-Server an, eine Verbindung zu der von uns angegebenen IP-Adresse herzustellen. Diese Zeichenfolge kann eine IP-Adresse, ein Hostname, ein Netzwerkschnittstellenname (unter UNIX) oder „-“ (verwenden Sie die Standard-IP-Adresse des Systems) sein.
CURLOPT_COOKIE: Übergeben Sie einen Verbindungsheader, der ein HTTP-Cookie enthält.
CURLOPT_SSLCERT: Übergeben Sie eine Zeichenfolge, die das Zertifikat im PEM-Format enthält.
CURLOPT_SSLCERTPASSWD: Übergeben Sie ein Passwort, das das erforderliche Passwort für die Verwendung des CURLOPT_SSLCERT-Zertifikats enthält.
CURLOPT_COOKIEFILE: Übergeben Sie eine Zeichenfolge mit dem Namen der Datei, die die Cookie-Daten enthält. Diese Cookie-Datei kann im Netscape-Format vorliegen oder ein Stapel von in der Datei gespeicherten HTTP-Headern sein.
CURLOPT_CUSTOMREQUEST: Übergeben Sie bei einer HTTP-Anfrage ein Zeichen, das von GET oder HEAD verwendet werden soll.
Das Obige zeigt, wie PHP Curl verwendet, um Remote-Bilder zu erhalten. Ich hoffe, es wird für das Lernen aller hilfreich sein.
Verwandte Empfehlungen:
php verwendet die Curl-Methode zum Abrufen von Daten über einen Proxy
PHP7-Upload-Bildfunktion basierend auf Curl
Das obige ist der detaillierte Inhalt vonPHP verwendet Curl, um eine Remote-Image-Implementierungsmethode zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!