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

<?php
     //组织链接
     $dataurl = "http://118.194.236.54:888/kw/";
     $date = date("Y-m-d",strtotime("-1 day"));
     $fileName = $date . ".tar.gz";
     $dataurl = $dataurl . $fileName;      //下载昨天数据,如果curl方法可用,默认使用curl方法!
     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);          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)) {
                 return $file;
             } else {
                 return false;
             }
         } else {
             $opts = array(
                 "http" => array(
                 "method" => "GET",
                 "header" => "",
                 "timeout" => $timeout)
             );
             $context = stream_context_create($opts);
             if(@copy($url, $file, $context)) {
                 return $file;
             } else {
                 return false;
             }
         }
     }      if(!httpcopy($dataurl, "./" . $fileName, 60)) {
          echo "下载出错!";
     }      //解压tar.gz文件
     $phar = new PharData($fileName);
     $phar->extractTo('./', null, true);      //读取解压后的文件数据
     $handle = fopen($date . ".txt", "r");
    
     $text = '';
     while (!feof($handle)) {
         $buffer = fgets($handle);
         $res = explode("\t", $buffer);
         $text .= $res[1] . ' ';
     }
     fclose($handle);      //写入关键字文件
     $name = $date . "keyword.txt";
     $fp = fopen($name, "w+");
     fwrite($fp, $text);
     fclose($fp);
    
?>

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. Linux Shell 通配符、元字符、转义符使用实例介绍

    https://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

  2. webpack流程图

  3. nyoj 1239 引水project (河南省第八届acm程序设计大赛)

    题目1239 pid=1239" style="color:rgb(55,119,188)">题目信息 pid=1239" style="col ...

  4. linux下查看当前目录属于哪个分区?

    下班之前写哈今天用的一个新命令. df -h /opt/test

  5. linux给当前用户添加环境变量

    比如当前用户为oracel,则添加环境变量操作为: vim  /home/oracel/.bashrc

  6. Window关闭端口的方法(445/135/137/138/139/3389等)

    为防止漏洞被利用,需要采取必要措施,关闭以上端口,以保证系统更加安全. window2003 关闭135端口的方法 要关闭此端口,只需停止DCOM接口服务即达到目的.下面是详细操作过程. 1.打开“组 ...

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

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

  8. 使用Bind搭建DNS服务

    DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据I ...

  9. java十年技术栈[总结复习用]

    以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycat java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 ...

  10. iOS 9: UIStackView入门

    本文转自http://www.cocoachina.com/ios/20150623/12233.html 本文由CocoaChina译者candeladiao翻译,欢迎参加我们的翻译活动.原文:iO ...