解压缩php文件

时间:2014-06-21 14:29:40

标签: php zip extract

我试图提取包含php文件的zip文件。

以zip名称为例" test.zip'在里面,一个zip.php文件,代码如下:

<?php 
class php{

}  
?>

我尝试使用两个不同的片段来提取zipe文件:

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

}

<?php

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

但在这两种情况下,结果总是一样的:

<?php
class phpclass{
    function clase(){   

    }   
}
?>

提取的文件长两倍,并且其空白分隔符的次数是原始的两倍。

无论如何都要提取zip文件中包含的相同文件副本吗?

1 个答案:

答案 0 :(得分:0)

请替换此:

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

......用这个:

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

b标志代表“二进制”并禁用换行转换。标志在fopen() manual page中描述。