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

xiaoxiao2021-03-01  15

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);             }         }     }

 

转载请注明原文地址: https://www.6miu.com/read-3650316.html

最新回复(0)