php将文件夹打包成zip文件
function addFileToZip($path,$zip){
$handler=opendir($path); //打开当前文件夹由$path指定。
while(($filename=readdir($handler))!==false){
if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作
if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归
addFileToZip($path."/".$filename, $zip);
}else{ //将文件加入zip对象
$zip->addFile($path."/".$filename);
}
}
}
@closedir($path);
}
$zip=new ZipArchive();
if($zip->open('images.zip', ZipArchive::OVERWRITE)=== TRUE){
addFileToZip('images/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
$zip->close(); //关闭处理的zip文件
}
文件操作
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台!
//取得指定文件夹的目录名称 2 function get_dir_name($dir_path,$file) 3 { 4 $dirpath = $dir_path; 5 $dir = scandir($dirpath); 6 foreach ($dir as $key=>$value) 7 { 8 if (is_dir($dirpath.'/'.$value) && $value != '.' && $value != '..') 9 { 10 //echo $dirpath.'/'.$value.'/'.$file; 11 //在目录下生成一个config.php文件,当然这个文件可以自己定义了 12 if (!file_exists($dirpath.'/'.$value.'/'.$file)) 13 { 14 $fo = fopen($dirpath.'/'.$value.'/'.$file,'xb+'); //在这里的时候,我之前尝试用w+,结果失败, 15 //在windows 下,我有创建成功,请注意了!所有建议用xb+,兼容多平台 16 chmod($file,"0777"); 17 fwrite( $fo,'i is a zongzi ,here is config file!') or die('配置文件创建失败!请检查是否有此目录和文件的操作权限!'); 18 fclose($fo); 19 } 20 $arr[] = $value; 21 } 22 } 23 return $arr; 24 }