我试图提取包含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文件中包含的相同文件副本吗?
答案 0 :(得分:0)
请替换此:
$fopen = fopen($archivo,'w+');
......用这个:
$fopen = fopen($archivo,'w+b');
b
标志代表“二进制”并禁用换行转换。标志在fopen()
manual page中描述。