php压缩文件之pclzip(全站备份)
要先下载一个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
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/php压缩文件之pclzip(全站备份)/
赞赏
微信赞赏支付宝赞赏
发表评论