php从远程服务器XXX.zip下下载一个.zip,然后解压.zip文件,拿到.csv文件,最后导入数据库?

<?php 
function downfile($fileurl)
{
 ob_start(); 
 $filename=$fileurl;
//  $date=date("Ymd-H:i:m");
 $date=date("Ymd");
 echo $date;
//  header( "Content-type:  application/octet-stream "); 
 header( "Content-type:application/zip");
 header( "Accept-Ranges:  bytes "); 
 header( "Content-Disposition:  attachment;  filename= {$date}.csv"); 
 $size=readfile($filename); 
  header( "Accept-Length: " .$size);
}
$url="http:XXX.zip";
 downfile($url);
?> 
阅读 4k
3 个回答

不知所谓, 看不明白要表达什么问题

首先, readfile 是输出文件内容到缓存区的, 不知你从哪找的代码, 肯定不能用于你的需求.

  1. 下载远程文件, 请百度php file_get_contents()方法, (也可以用curl, 相对稳定但比较复杂,前者够你用了).

  2. 至于解压文件, 你需要安装php zip扩展, 并了解相关方法 zip_*(), 提取cvs文件.

  3. CVS只是个数据文件, 你需要把它解析出来一个二维数组的数据, 拼接sql插入到数据库, 这个百度倒是能有不少结果的.

  4. 自己了解以上东西, 并自己码代码吧, 网上可没现成的代码给你用, 别人也没太多耐心帮你写, 因为你的需求拆分太多.

php也可以解压文件,不过能用别的语言来做这个事情更好了,比如python,下载解压导入都没有问题

二进制文件导入数据库?

$fp = fopen($url, 'rb');//读取文件
header( "Content-Disposition:  attachment;  filename= {$date}.zip");//这个改为下载的文件名
fpassthru($fp);         // 输出文件内容
//拿到这个文件下载后的地址。
$resource = zip_open($filename);
/**读csv文件,使用phpExcel http://www.codeplex.com/PHPExcel
insert 到数据库
**/
zip_close($resource); 

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题