要先下载一个pclzip类文件。下载地址自行百度 pclzip.class.php
<?php// 备份形式 访问 xx.php?back=1 表示全站备份 xx.php?back=0表示备份$files里面出现的文件夹或文件if(isset($_GET['back'])){$model=(int)$_GET['back'];$rs=back_phpfile($model);if($rs==1){// exit("<script language='javascript'>window.location.href='./login.php';</script>");exit("<script language='javascript'>alert('备份成功!\backup\');window.location.href='../index.php';</script>");}else{exit("<script language='javascript'>alert('失败:".$rs."');window.location.href='../index.php';</script>");}}else{die();}//////下方为函数function back_phpfile($model){//1 代表整站备份 0 ,部分备份set_time_limit(0); //备份时间较长,不进行此设置的话,超时后会失败$back_name=date("YmdHis").".zip";$files="../sdk-core/";////////多个文件夹或文件中间用逗号隔开!$files.=",../aaa/";$files.=",../css/";$files.=",../js/";$files.=",../excel/inddex.php";$files = getZipGbk($files);//有中文的情况必不可少require_once('pclzip.class.php');if($model==1){//备份全站文件$zip = new PclZip('./backup/total_fileback_'.$back_name);//pclzip括号内参数为备份的zip文件的存放地址!$v_list = $zip->create($_SERVER['DOCUMENT_ROOT'] ,PCLZIP_OPT_REMOVE_PATH,$_SERVER['DOCUMENT_ROOT']);}else{//备份列表出现的文件$zip = new PclZip('./backup/part_fileback_'.$back_name);$v_list = $zip->create($files ,PCLZIP_OPT_REMOVE_PATH,$files);}if($v_list == 0){//echo '异常:'.$zip->errorInfo(true);return $zip->errorInfo(true);}else{//echo '备份成功';return 1;}}function getZipGbk($file) {//识别添加到压缩文件内文件的中文名编码??$arr = explode(",", $file);foreach ($arr as $v) {$names[] = iconv('UTF-8', 'GB2312', $v);}return implode(",", $names);}?>
另外pclzip.class.php也内含了压缩功能,更多功能有兴趣的可以参考这片文章:
https://www.cnblogs.com/wuheng1991/p/5102396.html
发表评论