function addFileToZip($path,$zip){
$handler=opendir($path);
while(($filename=readdir($handler))!==false){
if($filename != "." && $filename != ".."){
if(is_dir($path."/".$filename)){
addFileToZip($path."/".$filename, $zip);
}else {
$zip->addFile($path."/".$filename);
}
}
}
@closedir($path);
}
$zip=new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
addFileToZip('ex/share/', $zip);
$zip->close();
}
12 个解决方案
#1
$zip = new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
$p = glob($path');
for($i=0; $i<count($p); $i++) {
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
else $zip->addFile($p[$i]);
}
$zip->close();
}
#2
楼上那个是一般默认情况都支持的吗,还是要网站服务器的PHP单独开了压缩功能呢
#3
运行test.php 后没有生成zip压缩包
#4
你组装的路径存在吗?
#5
echo file_exists(__FILE__."/../A");
输出 1
需要打开什么php拓展吗 ?
#6
参考第 6 行的写法
#7
第6行?
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
如果路径是目录,不用递归?
#8
$p = glob("$path/*");
#9
$p 返回空的数组
test.php
$zip = new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
$path = __FILE__."/../A";
//$p = glob($path);
$p = glob("$path/*");
for($i=0; $i<count($p); $i++) {
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
else $zip->addFile($p[$i]);
}
$zip->close();
}
文件结构
想要的效果:将A文件打包成zip
#10
空数组就表示你的路径不对
#11
路劲貌似不对!!!
#12
#1
$zip = new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
$p = glob($path');
for($i=0; $i<count($p); $i++) {
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
else $zip->addFile($p[$i]);
}
$zip->close();
}
#2
楼上那个是一般默认情况都支持的吗,还是要网站服务器的PHP单独开了压缩功能呢
#3
运行test.php 后没有生成zip压缩包
#4
你组装的路径存在吗?
#5
echo file_exists(__FILE__."/../A");
输出 1
需要打开什么php拓展吗 ?
#6
参考第 6 行的写法
#7
第6行?
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
如果路径是目录,不用递归?
#8
$p = glob("$path/*");
#9
$p 返回空的数组
test.php
$zip = new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
$path = __FILE__."/../A";
//$p = glob($path);
$p = glob("$path/*");
for($i=0; $i<count($p); $i++) {
if(is_dir($p[$i])) $p = array_merge($p, glob("{$p[$i]}/*"));
else $zip->addFile($p[$i]);
}
$zip->close();
}
文件结构
想要的效果:将A文件打包成zip
#10
空数组就表示你的路径不对
#11
路劲貌似不对!!!