【问题标题】:Unzip php files解压php文件
【发布时间】:2014-06-21 14:29:39
【问题描述】:

我正在尝试提取一个包含 php 文件的 zip 文件。

以 zip 名称“test.zip”为例,其中包含一个带有以下代码的 zip.php 文件:

<?php 
class php{

}  
?>

我尝试使用两种不同的 sn-ps 来提取 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 文件中包含的文件的相同副本?

【问题讨论】:

  • @Idris 撤消该编辑。您需要先阅读问题。他正在描述他从解压缩过程中获得的额外空行,而您刚刚删除了所有内容!!!!!

标签: php zip extract


【解决方案1】:

请替换:

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

...用这个:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2020-11-12
    • 2019-05-21
    • 1970-01-01
    • 2014-10-23
    • 2015-12-26
    相关资源
    最近更新 更多