2014-06-21 2 views
0

PHP 파일이 들어있는 zip 파일을 추출하려고합니다.PHP 파일의 압축을 풉니 다

<?php 
class php{ 

} 
?> 

나는 서로 다른 두 가지 조각으로 시도한 zipe 파일을 추출 할 : 예를 내부에 지퍼 이름 'test.zip'와,이 코드와 zip.php 파일을 복용

<?php 

$zip = new ZipArchive; 
$res = $zip->open('test.zip'); 
if ($res === TRUE) { 
    $zip->extractTo('./'); 
    $zip->close(); 
    echo 'ok!'; 
} else { 
    echo 'ko!'; 
} 
?> 

그러나 두 경우 모두

$zip = zip_open ('test.zip'); 
while($file = zip_read($zip)){ 
$archivo = (zip_entry_name($file));  
zip_entry_open($zip, $file); 
$contenido = zip_entry_read($file); 
$fopen = fopen($archivo,'w+'); 
fwrite($fopen, $contenido);  

} 

, t 그 결과는 항상 동일합니다 :

<?php 
class phpclass{ 
    function clase(){ 

    } 
} 
?> 

추출 된 파일의 길이가 원본보다 2 배 길고 빈 줄이 두 개인 경우

zip 파일에 포함 된 동일한 파일 사본을 추출하는 방법이 있습니까?

+0

@ 아이리스 해당 편집을 취소하십시오. 먼저 질문을 읽어야합니다. 그는 압축 해제 과정에서 얻은 여분의 빈 줄을 설명하고 있었고 방금 tham을 모두 제거했습니다 !!!!! – RiggsFolly

답변

0

이 교체하십시오 :

$fopen = fopen($archivo,'w+'); 

을 ...이와 함께 :

$fopen = fopen($archivo,'w+b'); 

b 플래그는 "진"의 약자로 줄 바꿈 변환을 사용하지 않습니다. 플래그는 fopen() manual page에 설명되어 있습니다.

관련 문제