嗯~就是一个能够打包文件夹内容的PHP小工具。您曾经是否郁闷过:我黑了别人的网站可是我也想下载他网站的源码,身边却没有好用的文件夹打包工具(很多WebShell工具都只是提供文件打包,不支持文件夹打包);又或是,你想只备份一个文件夹内的所有文件却怕FTP一个一个文件拉取的麻烦。现在,有了这款DoDo出品的PHP整站打包程序即可完成您的梦想。
第一代程序截图:
第二代程序截图:
支持目录跳转,支持自定义目录打包。
第二代源码(BY Ca3tie1)
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
<title>PHP整站打包程序-Ca3tie1修改版</title>
</head>
<style type="text/css">
A:LINK {TEXT-DECORATION:none}
A:VISITED {COLOR:#3F3849}
</style>
<body>
<form name="myform"method="post"action="">
<?php
if($_GET[tdir]){
$tdir=$_GET[tdir];
}else{
$tdir='./';
}
ini_set('memory_limit','2048M');
echo"选择要压缩的文件或目录,当前所在目录:".realpath($tdir)."<br>";
//目录列表
$fdir=opendir($tdir);
while($file=readdir($fdir))
{
if(is_dir(realpath($tdir."/".$file)))
{
if($file!=".."&&$file!="."){
echo"<input name='dfile[]' type='checkbox' value='$file' ".($file==basename(__FILE__)?"":"checked")."> ";
echo"<font face=\"wingdings\"size=\"5\">0</font> <ahref=?tdir=".urlencode($tdir."/".$file).">$file</a><br>";
}
elseif($file==".."){
echo "<ahref=?tdir=".urlencode("$tdir/../").">返回上级目录</a><br>";
}
}
}
//文件列表
$fdir = opendir($tdir);
while($file=readdir($fdir))
{
if($file=='.'|| $file=='..')
continue;
if(is_file(realpath($tdir."/".$file)))
{ echo "<input name='dfile[]'type='checkbox'value='$file'".($file==basename(__FILE__)?"":"checked").">";
echo "<font face=\"wingdings\"size=\"5\">2</font> $file<br>";
}
}
?>
<br>
包含下列文件类型:
<input name="file_type"type="text"id="file_type"value=""size="50">
<font color="red">
(文件类型用"|"隔开,默认空则包含任意文件,例:如果需要打包php和jpg文件,则输入"php|jpg")
</font>
<br>
压缩文件保存到目录:
<input name="todir"type="text"id="todir"value="__dodo__"size="15">
<font color="red">
(留空为本目录,必须有写入权限)
</font>
<br>
压缩文件名称:
<input name="zipname"type="text"id="zipname"value="dodo.zip"size="15">
<font color="red">
(.zip)
</font>
<br>
<br>
<input name="myaction"type="hidden"id="myaction"value="dozip">
<input type='button'value='反选'onclick='selrev();'>
<input type="submit"name="Submit"value=" 开始压缩 ">
<script language='javascript'>
functionselrev()
{
form)
{
for(i=0;i<elements.length;i++)
{
thiselm=elements[i];
if(thiselm.name.match(/dfile\[]/))
thiselm.checked = !thiselm.checked;
}
}
}
</script>
<?php
set_time_limit(0);
目前行的php开发工具有classPHPzip
{
var$file_count=0;
var$datastr_len =0;
var$dirstr_len=0;
var$filedata='';//该变量只被类外部程序访问
var$gzfilename;
var$fp;
var$dirstr='';
var$filefilters=array();
functionSetFileFilter($filetype)
{
$this->filefilters=explode('|',$filetype);
}
//返回文件的修改时间格式.
//只为本类内部函数调用.
functionunix2DosTime($unixtime=0)
{
$timearray=($unixtime==0)?getdate():getdate($unixtime);
if($timearray['year']<1980)
{
$timearray['year'] =1980;
$timearray['mon'] =1;
$timearray['mday'] =1;
$timearray['hours'] =0;
$timearray['minutes']=0;
$timearray['seconds']=0;
}
return(($timearray['year']-1980)<<25)|($timearray['mon']<<21)|($timearray['mday']<<16)| ($timearray['hours']<<11)|($timearray['minutes']<<5)|($timearray['seconds']>>1);
}
//初始化文件,建立文件目录,
//并返回文件的写入权限.
functionstartfile($path='dodo.zip')
{
$this->gzfilename=$path;
$mypathdir=array();
do
{
$mypathdir[]=$path=dirname($path);
}while($path!='.');
@end($mypathdir);
do
{
$path=@current($mypathdir);
@mkdir($path);
}while(@prev($mypathdir));
if($this->fp=@fopen($this->gzfilename,"w"))
{
returntrue;
}
returnfalse;
}
//添加一个文件到 zip 压缩包中.
functionaddfile($data,$name)
{
$name=str_replace('\\','/',$name);
if(strrchr($name,'/')=='/')
return$this->adddir($name);
if(!empty($this->filefilters))
{
if(!in_array(end(explode(".",$name)),$this->filefilters))
{
return;
}
}
$dtime=dechex($this->unix2DosTime());
$hexdtime='\x'.$dtime[6].$dtime[7].'\x'.$dtime[4].$dtime[5].'\x'.$dtime[2].$dtime[3].'\x'.$dtime[0].$dtime[1];
eval('$hexdtime = "'.$hexdtime.'";');
$unc_len=strlen($data);
$crc =crc32($data);
$zdata =gzcompress($data);
$c_len =strlen($zdata);
$zdata =substr(substr($zdata,0,strlen($zdata)-4),2);
//新添文件内容格式化:
$datastr ="\x50\x4b\x03\x04";
$datastr.="\x14\x00"; // ver needed to extract
$datastr.="\x00\x00"; // gen purpose bit flag
$datastr.="\x08\x00"; // compression method
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论