以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码:

  1. <?php
  2.      //组织链接
  3.      $dataurl = "http://118.194.236.54:888/kw/";
  4.      $date = date("Y-m-d",strtotime("-1 day"));
  5.      $fileName = $date . ".tar.gz";
  6.      $dataurl = $dataurl . $fileName;
  7.  
  8.      //下载昨天数据,如果curl方法可用,默认使用curl方法!
  9.      function httpcopy($url, $file="", $timeout=60)
  10.      {
  11.          $file = empty($file) ? pathinfo($url, PATHINFO_BASENAME) : $file;
  12.          $dir = pathinfo($file, PATHINFO_DIRNAME);
  13.          !is_dir($dir) && @mkdir($dir, 0755, true);
  14.          $url = str_replace(" ", "%20", $url);
  15.  
  16.          if(function_exists('curl_init')) {
  17.              $ch = curl_init();
  18.              curl_setopt($ch, CURLOPT_URL, $url);
  19.              curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  20.              curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  21.              $temp = curl_exec($ch);
  22.              if(@file_put_contents($file, $temp) && !curl_error($ch)) {
  23.                  return $file;
  24.              } else {
  25.                  return false;
  26.              }
  27.          } else {
  28.              $opts = array(
  29.                  "http" => array(
  30.                  "method" => "GET",
  31.                  "header" => "",
  32.                  "timeout" => $timeout)
  33.              );
  34.              $context = stream_context_create($opts);
  35.              if(@copy($url, $file, $context)) {
  36.                  return $file;
  37.              } else {
  38.                  return false;
  39.              }
  40.          }
  41.      }
  42.  
  43.      if(!httpcopy($dataurl, "./" . $fileName, 60)) {
  44.           echo "下载出错!";
  45.      }
  46.  
  47.      //解压tar.gz文件
  48.      $phar = new PharData($fileName);
  49.      $phar->extractTo('./', null, true);
  50.  
  51.      //读取解压后的文件数据
  52.      $handle = fopen($date . ".txt", "r");
  53.     
  54.      $text = '';
  55.      while (!feof($handle)) {
  56.          $buffer = fgets($handle);
  57.          $res = explode("\t", $buffer);
  58.          $text .= $res[1] . ' ';
  59.      }
  60.      fclose($handle);
  61.  
  62.      //写入关键字文件
  63.      $name = $date . "keyword.txt";
  64.      $fp = fopen($name, "w+");
  65.      fwrite($fp, $text);
  66.      fclose($fp);
  67.     
  68. ?>

php下载文件,解压文件,读取并写入新文件的更多相关文章

  1. PCB 无需解压,直接读取Genesis TGZ指定文件 实现方法

    通过无需解压读取ZIP压缩包的方法,寻思者如何可以不解压直接读Genesis TGZ文件内容, 通过查找资料,原来可以通过:SharpCompress.dll工具实现此需求,此工具如此NB 一.Sha ...

  2. PCB 无需解压,直接读取Zip压缩包指定文件 实现方法

    最近有一项需求,将电测试点数后台批量写入到工程系统流程指示中,而电测试文件存在压缩包中,压缩包存在公共网络盘 示例图: 一.采用原始方法(4步完成): 第1步:.网络盘ZIP拷到本地, 第2步:解压Z ...

  3. ZIP文件解压

    public class DZip { /// <summary> /// 压缩为ZIP文件 /// </summary> public void Zip(string dir ...

  4. java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决

    情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...

  5. Linux中下载、解压、安装文件

    一.将解压包发送到linux服务器上: 1.在windos上下载好压缩包文件后,通过winscp等SFTP客户端传送给linux 2.在linux中通过wget命令直接下载 #wget [选项] [下 ...

  6. Linux中下载、解压、安装文件(转)

    原文地址:http://www.cnblogs.com/red-code/p/5539399.html 一.将解压包发送到linux服务器上: 1.在windos上下载好压缩包文件后,通过winscp ...

  7. 将.war文件解压到指定目录

    jar命令无法将.jar解压到指定目录,因为-C参数只在创建或更新包的时候可用 要将.jar文件解压到指定目录可以用unzip命令 unzip命令在windows下自带就有,不用另外下载安装 下面是将 ...

  8. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

  9. shell复习---文件解压命令

    需要自己部署服务端,故在申请了空间之后,需要自己安装linux自己,自己安装Apache等,所以下载的压缩文件需要运行.网上找了一些解压命令不对,特别试了下面的方法有效,特别记录一下: 用ssh 登陆 ...

随机推荐

  1. symfony window下的安装 安装时候出现的问题以及解决方案

    1. cmd进入DOS  , cd 到 php.exe 的目录下 2.         php -r "readfile('http://symfony.com/installer');&q ...

  2. 5 -- Hibernate的基本用法 --1 4 Hibernate概述

    Hibernate 不仅仅管理Java类到数据库的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间.

  3. Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境 端口转发方式

    一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...

  4. ios开发之--[_NSInlineData objectForKeyedSubscript:]

    reason: '-[_NSInlineData objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa2049 ...

  5. Win7 在安装vs2010后向sql2008添加SQL_Server_Management详解

    VS2010自带sql server 2008,但自带的版本缺少SQL_Server_Management,解决如下: 安装的先决条件: 1.SQLManagementStudio_x86_CHS(h ...

  6. PHP代码审计笔记--代码执行漏洞

    漏洞形成原因:客户端提交的参数,未经任何过滤,传入可以执行代码的函数,造成代码执行漏洞. 常见代码注射函数: 如:eval.preg_replace+/e.assert.call_user_func. ...

  7. iOS开发--打印NSRange,CGRect等结构体

    使用对应的转换NSStringFromCGPoint   NSStringFromCGSize   NSStringFromCGRect  NSStringFromCGAffineTransform  ...

  8. Ansible 实战:一键安装 LNMP

    Ansible 配置文件 : [root@center /data/ansiblework]# cat ansible.cfg [defaults] remote_user = root remote ...

  9. 微信小程序源码案例大全

    微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo: ...

  10. 推荐系统之隐语义模型(LFM)

    LFM(latent factor model)隐语义模型,这也是在推荐系统中应用相当普遍的一种模型.那这种模型跟ItemCF或UserCF的不同在于: 对于UserCF,我们可以先计算和目标用户兴趣 ...