PHP CURL实现远程下载文件到本地
<?php
//$result=httpcopy('http://www.phpernote.com/image/logo.gif');
echo '<pre>';print_r($result);
function httpcopy($url,$file='',$timeout=60){
$file=empty($file)?pathinfo($url,PATHINFO_BASENAME):$file;
$dir=pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir)&&@mkdir($dir,0755,true);
$url=str_replace(' ',"%20",$url);
$result=array('fileName'=>'','way'=>'','size'=>0,'spendTime'=>0);
$startTime=explode(' ',microtime());
$startTime=(float)$startTime[0]+(float)$startTime[1];
if(function_exists('curl_init')){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$temp=curl_exec($ch);
if(@file_put_contents($file,$temp)&&!curl_error($ch)){
$result['fileName']=$file;
$result['way']='curl';
$result['size']=sprintf('%.3f',strlen($temp)/1024);
}
}else{
$opts=array(
'http'=>array(
'method'=>'GET',
'header'=>'',
'timeout'=>$timeout
)
);
$context=stream_context_create($opts);
if(@copy($url,$file,$context)){
$result['fileName']=$file;
$result['way']='copy';
$result['size']=sprintf('%.3f',strlen($context)/1024);
}
}
$endTime=explode(' ',microtime());
$endTime=(float)$endTime[0]+(float)$endTime[1];
$result['spendTime']=round($endTime-$startTime)*1000;//单位:毫秒
return $result;
}
PHP CURL实现远程下载文件到本地,该函数返回结果包括下载耗用的时间,保存的文件名,以及使用的下载方式。写的比较粗糙,如果大家有好的建议及改进方案,欢迎留言给我哦!
PHP CURL实现远程下载文件到本地的更多相关文章
- PHP实现远程下载文件到本地
PHP实现远程下载文件到本地 投稿:hebedich 字体:[增加 减小] 类型:转载 经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经 ...
- Java远程下载文件到本地(http协议和ssh2协议)
Java中java.io包为我们提供了输入流和输出流,对文件的读写基本上都依赖于这些封装好的关于流的类中来实现.前段时间遇到了以下两种需求: 1.与某系统对接,每天获取最新的图片并显示在前端页面.该系 ...
- java远程下载文件到本地
方法一 ** * 下载远程文件并保存到本地 * * @param remoteFilePath-远程文件路径 * @param localFilePath-本地文件路径(带文件名) */ public ...
- 使用xshell从远程服务器下载文件到本地
XSHELL工具上传文件到Linux以及下载文件到本地(Windows) Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz.首先你的L ...
- 在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)
在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...
- C#使用WebClient下载文件到本地目录
C#使用WebClient下载文件到本地目录. 1.配置本地目录路径 <appSettings> <!--文件下载目录--> <add key="Downloa ...
- Js点击按钮下载文件到本地(兼容多浏览器)
实现点击 用纯 js(非jquery) 下载文件到本地 自己尝试,加网上找了好久未果,如: window.open(url) location.href=url form表单提交 ifr ...
- 【转】XSHELL下直接下载文件到本地(Windows)
XSHELL下直接下载文件到本地(Windows) http://www.cnblogs.com/davytitan/p/3966606.html
- 通过指定的 url 去网络或者文件服务器下载文件到本地某个文件夹
/** * 从网络Url中下载文件 * @param urlStr 指定的url * @param fileName 下载文件到本地的名字 * @param savePath 本地保存下载文件的路径 ...
随机推荐
- Eclipse下Ruby的配置]
简述: 在Eclipse中开发Ruby开发环境 步骤: 第一步, 1. 在Eclipse的Help -> Install New Software输入 http://download. ...
- javaIO整理
写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...
- BZOJ K大数查询(分治)(Zjoi2013)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3110 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b ...
- mysql linux 备份脚本
#!/bin/sh # mysql data backup script # # use mysqldump --help,get more detail. # BakDir=/root/back/m ...
- Android 利用Service BroadcastReceiver实现小例子
Activity: package com.example.test; import android.app.Activity; import android.content.Context; imp ...
- 【rails3教材】博客构建过程2
2. 使用脚手架快速搭建网页 rails的脚手架可以快速生成应用程序的一些片段,如果你需要为一个资源创建一系列的控制器视图模型,那么脚手架就是你需要的工具 3. 创建资源 对于一个博客程序,你可以以生 ...
- php获取网页中图片并保存到本地
php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: save_img("http://www.jbxue.com" ?>
- 一个C#序列化时循环引用的问题
以前一直没搞懂为什么C#在做对象序列化时(Json序列化,XML序列化等)有时候会出现循环引用的问题,下面写了个例子,类People有一个属性引用了类Child,而类Child也有一个属性引用了类Pe ...
- innodb double write buffer
两次写是innodb的一个重要特性,目的是为了保证在异常down机或者没电的情况下,保证数据的安全可靠.一次是往内存的double write buffer中写,一次是在刷共享表空间的连续128个页. ...
- mysql的内存表和临时表
内存表: session $ mysql -uroot root@(none) ::>use test Database changed root::>CREATE TABLE tmp_m ...