本文章来介绍php使用curl来获取远程图片实现方法,有需要了解采集远程图片的朋友不防进入参考。

curl要求php环境支持才行. 可以运行phpinfo()函数是否支持,一般要将php.ini中;extension=php_curl.dll前的;去掉.重新启动IIS或者APACHE就可以了.

 代码如下 复制代码

/*
*@通过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;
}

调用时,直接getImg("/logo.jpg","upload/image.jpg")

实现代码2

代码如下:

 代码如下 复制代码

<?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 为CURL调用设置一个选项
bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。

下列选项的值将被作为长整形使用(在option参数中指定):

CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。

CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。

CURLOPT_HEADER: 如果你想把一个头包含在输出中,设置这个选项为一个非零值。

CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。

注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。

CURLOPT_NOBODY: 如果你不想在输出中包含body部分,设置这个选项为一个非零值。

CURLOPT_FAILONERROR: 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。

CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。

CURLOPT_POST: 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。

CURLOPT_FTPLISTONLY: 设置这个选项为非零值,PHP将列出FTP的目录名列表。

CURLOPT_FTPAPPEND: 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。

CURLOPT_NETRC: 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。

CURLOPT_FOLLOWLOCATION: 设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。

CURLOPT_PUT: 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.

CURLOPT_MUTE: 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。

CURLOPT_TIMEOUT: 设置一个长整形数,作为最大延续多少秒。

CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。

CURLOPT_LOW_SPEED_TIME: 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。

CURLOPT_RESUME_FROM: 传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。

CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。

CURLOPT_TIMECONDITION: 传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。

CURLOPT_TIMEVALUE: 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。

下列选项的值将被作为字符串:

CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。

CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。

CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。

CURLOPT_RANGE: 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。

CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。

CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。

CURLOPT_USERAGENT: 在HTTP请求中包含一个”user-agent”头的字符串。

CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。 这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。

CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。

CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。

CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。

CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。

CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request.

注意: 在确认你的服务器支持命令先不要去这样做。

第四下载 https://www.dddzd.com 是一个专业的软件下载站点,软件类型广泛,需要下软件的朋友就去第四下载哦!

第四下载手机站:https://m.dddzd.com

php使用curl来获取远程图片的更多相关文章

  1. curl获取远程图片存到本地

    $url = 'http://sssss/sss/xu0fLo9waqKSTDO7j0kSO41O5Luq3LB6ozUvY4O7OsXUWNicB49fBs8nGYzoqcwGDARQZHpVuic ...

  2. php 获取远程图片保存到本地

    php 获取远程图片保存到本地 使用两个函数 1.获取远程文件 2.把图片保存到本地 /** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空. */ functi ...

  3. PHP高效获取远程图片尺寸和大小(转)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. PHP高效获取远程图片尺寸和大小

    /** * 获取远程图片的宽高和体积大小 * * @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 f ...

  5. php 获取远程图片长宽和大小

    /***获取远程图片的宽高和体积大小 ** @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 frea ...

  6. php 获取远程图片

    一 function gethttpimage($url){      set_time_limit(0);      if(!empty($url)){        $imgUrl=date('Y ...

  7. php获取远程图片模拟post,file上传到指定服务器

    1.获取远程图片 /** $path保存图片的地址 $url要获取的远程图片地址 **/ function getimg($path,$url){ $aext = explode('.', $url) ...

  8. PHP获取远程图片

    <?php // // Function: 获取远程图片并把它保存到本地 // // // 确定您有把文件写入本地服务器的权限 // // // 变量说明: // $url 是远程图片的完整UR ...

  9. php获取远程图片并把它保存到本地

    /* *功能:php多种方式完美实现下载远程图片保存到本地 *参数:文件url,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ function getImage( ...

随机推荐

  1. PHP levenshtein() 函数

    实例 计算两个字符串之间的 Levenshtein 距离: <?php echo levenshtein("Hello World","ello World&quo ...

  2. Java垃圾回收原来这么简单

    什么是垃圾回收? 垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露.有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和 ...

  3. Neo4j 的使用说明(二)

    上一篇: https://www.cnblogs.com/infoo/p/9840965.html  阅读量挺多的,因此继续写一下(二) 在上一篇说到:(版本依然基于V3.4.9) 如果为了方便更改d ...

  4. .net core编写转发服务(三) 接入Polly

    在web服务里面,很常见出现各种问题,需要一些响应的策略,比如服务繁忙的时候,重试,或者重试等待 服务繁忙的时候根据策略即使处理 关于接入Polly我还是沿用之前的代码,继续迭代 Web Api用的是 ...

  5. Linux常用命令之用户权限管理chmod、chown、chgrp、umask命令讲解

    这节课我们重点来学习权限管理命令,说到权限大家可能第一时间能想到的就是读.写.执行 rwx 三种权限,在正式讲解权限命令之前,先简单的介绍一下rwx权限对于文件和目录的不同含义. 权限字符 权限 对文 ...

  6. Springboot+swagger2.7集成开发

    Springboot+swagger2.7集成开发 本篇文章是介绍最新的springboot和swagger2.7集成开发和2.0稍微有一些出入: Springboot集成环境配置 Swagger2. ...

  7. 5个Python特性 越早知道越好的

    Kirill Sharkovski 发布在 Unsplash 杂志上的照片 AI开发者按,Python 是近十年来兴起的编程语言,并且被证明是一种非常强大的语言.我用 Python 构建了很多应用程序 ...

  8. SpringBoot实现发送邮件

    1.QQ邮箱发送邮件设置 首先登录QQ邮箱>>>登录成功后找到设置>>>然后找到邮箱设置>>>点击账户>>>找到POP3|SMT ...

  9. Nginx配置SSL证书,提高网络安全性

    首先区别Http与Https HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...

  10. 2020重新出发,JAVA学前了解,Windosws常用快捷键

    前言:windows 常用快捷键 标准计算机键盘共104键,除了26个字母键.符号键.数字键外,剩下的都是一些功能键: 键盘功能键 常用功能键:Esc.Tab.Caps Lock.Shift.Ctrl ...