我正在尝试提取一个包含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文件中包含的文件的相同副本?
请替换此:
$fopen = fopen($archivo,'w+');
这个:
$fopen = fopen($archivo,'w+b');
b
标志代表"二进制"并禁用换行转换。标志在fopen()
手册页面中进行了说明。