PHP uses curl to get a remote picture _php tutorial

Source: Internet
Author: User
Tags http cookie
This article describes PHP using curl to obtain a remote image implementation method, there is a need to understand the collection of remote pictures of friends do not enter the reference.

Curl requires PHP environment support. You can run the Phpinfo () function to see if it is supported, usually in the php.ini, before the Extension=php_curl.dll; restart IIS or Apache.

The code is as follows Copy Code


/*
*@ gets the specified picture to a local by curl
*@ Full Picture Address
*@ the file name to store
*/
function getimg ($url = "", $filename = "")
{

Remove the possible quotes above the URL connection
$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);//returns data as a data stream, when false is displayed directly
curl_setopt ($hander, curlopt_timeout,60);
Curl_exec ($hander);
Curl_close ($hander);
Fclose ($FP);
Return true;
}

When called, direct getimg ("/logo.jpg", "upload/image.jpg")


Implementation Code 2

The code is as follows:

The code is as follows Copy Code

$url = "Picture absolute address/thumbnail.jpg";

$filename = ' curl.jpg ';

Getimg ($url, $filename);
/*
*@ through curl to get the developed picture to the local
*@ Full Picture Address
*@ the file name to store
*/
function getimg ($url = "", $filename = "") {
if (Is_dir (basename ($filename))) {
echo "The Dir is not exits";
return false;
}
Remove the possible quotes above the URL connection
$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);//returns data as a data stream, when false is displayed directly
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 setting an option for a curl call
BOOL curl_setopt (int ch, string option, mixed value)
The curl_setopt () function sets options for a curl session. The option parameter is the setting that you want, and value is the one given by this choice.

The values of the following options are used as long shapes (specified in the option parameter):

Curlopt_infilesize: When you upload a file to a remote site, this option tells PHP the size of your upload file.

Curlopt_verbose: If you want curl to report every unexpected thing, set this option to a value other than 0.

Curlopt_header: If you want to include a header in the output, set this option to a value other than 0.

Curlopt_noprogress: If you do not have PHP display a process bar for the Curl transfer, set this option to a value other than 0.

Note: PHP automatically sets this option to a value other than 0, you should only change this option for debugging purposes.

Curlopt_nobody: If you do not want to include the body part in the output, set this option to a value other than 0.

Curlopt_failonerror: If you want PHP to not display when an error occurs (HTTP code returns greater than or equal to 300), set this option to one person other than 0 value. The default behavior is to return a normal page, ignoring the code.

Curlopt_upload: If you want PHP to prepare for uploading, set this option to a value other than 0.

Curlopt_post: If you want PHP to do a regular HTTP POST, set this option to a value other than 0. This post is an ordinary application/x-www-from-urlencoded type, most of which is used by HTML forms.

Curlopt_ftplistonly: Set this option to a value other than 0, PHP lists the list of directory names for FTP.

Curlopt_ftpappend: Set this option to a value other than 0, PHP will apply the remote file instead of overwriting it.

CURLOPT_NETRC: Set this option to a value other than 0, PHP will look in your ~./netrc file for the user name and password of the remote site you want to connect to.

Curlopt_followlocation: Set this option to a non-0 value (like "Location:") header, the server will send it as part of the HTTP header (note that this is recursive, PHP will be sent as "location:" the head).

Curlopt_put: Set this option to use HTTP to upload a file for a value other than 0. To upload this file you must set the Curlopt_infile and Curlopt_infilesize options.

Curlopt_mute: Set this option to a value other than 0, PHP will be completely silent for the curl function.

Curlopt_timeout: Sets a long shape number, as the maximum continuation of how many seconds.

Curlopt_low_speed_limit: Sets a long shaping number to control how many bytes are transferred.

Curlopt_low_speed_time: Sets a long shape number that controls how many seconds to transmit curlopt_low_speed_limit the specified number of bytes.

Curlopt_resume_from: Pass a long shaping parameter that contains the byte offset address (the start form you want to transfer to).

Curlopt_sslversion: Pass a long parameter that contains the SSL version. The default PHP will be determined by its own efforts, and in more security you must set it up manually.

Curlopt_timecondition: Passes a long parameter that specifies how the Curlopt_timevalue parameter is handled. You can set this parameter to Timecond_ifmodsince or timecond_isunmodsince. This is used only for HTTP.

Curlopt_timevalue: Passes a number of seconds from 1970-1-1 onwards to the present. This time will be used by the Curlopt_timevalue option as the specified value, or by default timecond_ifmodsince.

The values of the following options will be used as strings:

Curlopt_url: This is the URL address you want to retrieve with PHP. You can also set this option when initializing with the Curl_init () function.

Curlopt_userpwd: Pass a shape like [Username]:[password] style string, function PHP to connect.

Curlopt_proxyuserpwd: Pass a string that is formatted as [Username]:[password] to connect to the HTTP proxy.

Curlopt_range: Pass a range that you want to specify. It should be in the "X-y" format, except for X. or Y. HTTP delivery also supports several intervals, separated by a phrase (x-y,n-m).

Curlopt_postfields: A string that passes all data as an HTTP "POST" operation.

Curlopt_referer: A string that contains a "REFERER" header in an HTTP request.

Curlopt_useragent: A string that contains a "user-agent" header in an HTTP request.

Curlopt_ftpport: Pass an IP address that contains the FTP "POST" instruction used. This post command tells the remote server to connect to the IP address we specified. This string can be an IP address, a host name, a network interface name (under Unix), or '-' (using the system default IP address).

Curlopt_cookie: Passes a header connection that contains an HTTP COOKIE.

Curlopt_sslcert: Pass a string containing a certificate in PEM format.

CURLOPT_SSLCERTPASSWD: Pass a password that contains required to use the Curlopt_sslcert certificate.

Curlopt_cookiefile: A string that passes the name of a file that contains cookie data. This cookie file can be a Netscape format, or an HTTP-style header that is stockpiled in a file.

Curlopt_customrequest: When an HTTP request is made, passing a character is used by get or head. For a delete or other operation is beneficial, more pass a string to is used instead of GET or HEAD when doing an HTTP request. This was useful for doing or another, and more obscure, HTTP request.

Note: Do not do this before confirming your server support commands.


http://www.bkjia.com/PHPjc/444584.html www.bkjia.com true http://www.bkjia.com/PHPjc/444584.html techarticle This article describes PHP using curl to obtain a remote image implementation method, there is a need to understand the collection of remote pictures of friends do not enter the reference. Curl requires PHP environment support. Can run Phpin ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.