php读取zip压缩文件(流操作)

php里面支持读很多伪协议的流  其中就包括zip流  对于zip包我们通用的做法是通过 zip 扩展解压 然后读文件,这里提供一个很少人知道的 流操作 读取zip压缩包。

 

先看下效果

 

上代码    t.zip是文件名  test.py 是你要直接读的文件

<?php
$file_protocol = "zip://t.zip#test.py";

$fp = fopen($file_protocol, 'rb');

if (!$fp) {
    return false;
}

while (!feof($fp)) {
    echo fread($fp, 1024);
}

fclose($fp);

 

------smtp的伪协议流也可以直接读 并且可以增加过滤器

<?php
    $dateStart=new  \DateTime();
    $dateInterval= DateInterval::createFromDateString('-1day');
    $datePeriod=new \DatePeriod($dateStart,$dateInterval,30);
    
    foreach($datePeriodasas$date){
        $file='sftp://USER:PASS@rsycn.net/' . $date->format("Y-m-d") . '.log.bz2';
        $handle=fopen($file);
        stream_filter_append($handle,'bzip2.decompress');
        while(true != feof($handle)){
            $line = fgets($handle);
            if(strpos($line,'www.example') != false){
                fwrite(STDOUT,$line);
            }
        }
    }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值