개발 꿀팁/PHP

php zip 압축 파일 읽기 (스트리밍 동작)

Jammie 2022. 7. 27. 14:17
반응형

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

 

반응형

'개발 꿀팁 > PHP' 카테고리의 다른 글

PHP 정책 패턴 쓰기  (0) 2022.07.27
CrossPHP 프레임워크의 상용 동작  (0) 2022.07.27
php 원형 페이지  (0) 2022.07.27
Docker의 PHP 설치 방법  (0) 2022.07.26
PHP 구현 이분 검색 알고리즘  (0) 2022.07.26