getFile(“http://pic4.nipic.com/20091217/3885730_124701000519_2.jpg”,”,’xuxin’);
/**
* php实现下载远程图片保存到本地
**
* $url 图片所在地址
* $path 保存图片的路径
* $filename 图片自定义命名
* $type 使用什么方式下载
* 0:curl方式,1:readfile方式,2file_get_contents方式
*
* return 文件名
*/
function getFile($url,$path=”,$filename=”,$type=0){
if($url==”){
return false;
}
//获取远程文件数据
if($type===0){
$ch=curl_init(); //初始化一个cURL会话
$timeout=20;
curl_setopt($ch,CURLOPT_URL,$url); //取回的URL地址
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //如果成功只将结果返回,不自动输出任何内容。
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);//最长执行时间
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);//最长等待时间

$img=curl_exec($ch); //获取的信息以文件流的形式返回
curl_close($ch);
}
if($type===1){
ob_start(); //打开缓冲区
readfile($url); //输出一个文件。
$img=ob_get_contents(); //得到缓冲区的数据
ob_end_clean(); //终止缓冲
}
if($type===2){
$img=file_get_contents($url); //把整个文件读入一个字符串中
}
//判断下载的数据 是否为空 下载超时问题
if(empty($img)){
throw new \Exception(“下载错误,无法获取下载文件!”);
}

//没有指定路径则默认当前路径
if($path===”){
$path=”./”;
}
//如果命名为空
if($filename===””){
$filename=md5($img);
}
//获取后缀名
$ext=substr($url, strrpos($url, ‘.’)); //查找字符串在另一字符串中最后一次出现的位置
if($ext && strlen($ext)<5){ $filename.=$ext; } //防止"/"没有添加 $path=rtrim($path,"/")."/"; //var_dump($path.$filename);die(); $fp2=@fopen($path.$filename,'a'); //写入方式打开文件 fwrite($fp2,$img); //数据写入 fclose($fp2); //关闭 //echo "finish"; return $filename; 正则匹配html标签的内容 案例 $regex4="/

.*?<\/p>/ism”;
if(preg_match_all($regex4, $return, $matches)){
var_dump($matches[0]);
}
默认安装使用的curl是不支持https协议的需要在代码块里面添加一下两端代码用来支持https协议
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false );

 

php 文件远程下载的更多相关文章

  1. PHP实现远程下载文件到本地

    PHP实现远程下载文件到本地 投稿:hebedich 字体:[增加 减小] 类型:转载   经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经 ...

  2. PHP CURL实现远程下载文件到本地

    <?php //$result=httpcopy('http://www.phpernote.com/image/logo.gif'); echo '<pre>';print_r($ ...

  3. 基于Python——实现远程下载sftp文件(只下载.zip文件)

    [背景]远程下载发布包等文件时,总是要使用WinSCP等工具登陆拖动.今天就介绍一种使用python下载文件到本地的方法. [代码实现] import paramiko # paramiko模块,基于 ...

  4. nodejs通过request请求远程url的文件并下载到本地

    需要循环去下载远程文件,然后自己写了一个demo,可以直接运行,如下: //文件下载 var fs = require("fs"); var path = require(&quo ...

  5. Java远程下载文件到本地(http协议和ssh2协议)

    Java中java.io包为我们提供了输入流和输出流,对文件的读写基本上都依赖于这些封装好的关于流的类中来实现.前段时间遇到了以下两种需求: 1.与某系统对接,每天获取最新的图片并显示在前端页面.该系 ...

  6. linux远程下载文件 的两种方法之 ftp命令和scp命令

    ftp命令: 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件的拷贝读取和下载. 1. 连接ftp服务器  格式:ftp [hostname| ip-ad ...

  7. [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)

    wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...

  8. iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载

    官方建议AFN的使用方法   0.导入框架准备工作 •1. 将AFNetworking3.0+框架程序拖拽进项目   •2. 或使用Cocopod 导入AFNetworking3.0+   •3.   ...

  9. LINUX安装SVN+添加自动同步+远程下载最新代码

    LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...

随机推荐

  1. 闭区间套定理(Nested intervals theorem)讲解1

    ① ②这里用到了极限与不等关系 ③如果a≠b,那么便不会有$\lim _{n\rightarrow \infty }\left| I_n \right| =0$ ④如果还存在一点c在 内,那么同样也不 ...

  2. zookeeper集群扩容/下线节点实践

    环境:zookeeper版本 3.4.6jdk版本 1.7.0_8010.111.1.29 zk110.111.1.44 zk210.111.1.45 zk310.111.1.46 zk410.111 ...

  3. Copycat - configure

    Copycat server之间的configure是如何,何时被同步的?   大家可以看到,只有leader可以同步配置   1. 显式的调用LeaderState.configure Leader ...

  4. OpenGL教程和书籍

    1.http://goanna.cs.rmit.edu.au/~gl/teaching/Interactive3D/

  5. 深探树形dp

    看到同学在写一道树形dp,好奇直接拿来写,发现很不简单. 如图,看上去是不是很像选课,没错这不是选课,升级版吧,多加了点东西罢了.简单却调了一晚上和一上午. 思路:很简单强联通分量+缩点+树形dp.直 ...

  6. day5_函数_文件读写_用一个函数来满足文件的读或者写_应用默认参数

    import json def op_file_tojson(filename,dic=None): #默认值参数,根据是否传dic字典来判断读还是写 if dic: #如果dic传了值,不是空的,则 ...

  7. ReactDom.render调用后没有渲染

    可能发生问题的代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  8. java JDBC (四)

    package cn.sasa.demo4; import java.sql.Connection; import java.sql.PreparedStatement; import java.sq ...

  9. WPF 参数在Page见传递

    void goButton_Click(object sender, RoutedEventArgs e) { this.NavigationService.Navigate(new ContentP ...

  10. JavaScript的cookie和sessionStorage 、localStorage

    localStorage.sessionStorage和cookie的区别与用法请见下面的博客: https://segmentfault.com/a/1190000012057010 cookie的 ...