一哥们要实现 php 的在线打包工具,随手在网上搜索了一个,但跟哥们的要求不一样,他的要求是在页面进行的变量传递过来的文件进行打包并在浏览器进行下载,但从网上找来的这个测试了下感觉系统还不错,代码量也较少,只不过是对某一个目录文件整个的一个打包,夏日博客遂将好代码进行分享一下吧,实例代码如下:
<?php
$button
=
$_POST
[
'button'
];
if
(
$button
==
"开始打包"
)
{
$zip
=
new
ZipArchive();
$filename
=
"./"
.
date
(
"Y-m-d"
).
"_"
.md5(time()).
"_jackfeng.zip"
;
if
(
$zip
->open(
$filename
, ZIPARCHIVE::CREATE)!==TRUE) {
exit
(
"无法创建 <$filename>\n"
);
}
$files
= listdir();
foreach
(
$files
as
$path
)
{
$zip
->addFile(
$path
,
str_replace
(
"./"
,
""
,
str_replace
(
"\\"
,
"/"
,
$path
)));
}
echo
"压缩完成,共压缩了: "
.
$zip
->numFiles .
"个文件\n"
;
$zip
->close();
}
Function listdir(
$start_dir
=
'.'
) {
$files
=
array
();
if
(
is_dir
(
$start_dir
)) {
$fh
= opendir(
$start_dir
);
while
((
$file
= readdir(
$fh
)) !== false) {
if
(
strcmp
(
$file
,
'.'
)==0 ||
strcmp
(
$file
,
'..'
)==0)
continue
;
$filepath
=
$start_dir
.
'/'
.
$file
;
if
(
is_dir
(
$filepath
) )
$files
=
array_merge
(
$files
, listdir(
$filepath
));
else
array_push
(
$files
,
$filepath
);
}
closedir
(
$fh
);
}
else
{
$files
= false;
}
return
$files
;
}
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN"
>
<html>
<head>
<title>在线打包工具</title>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=gb2312"
>
</head>
<body>
<form name=
"form1"
method=
"post"
action=
""
>
<hr size=
"1"
>
<h3><a href=
"?"
>在线打包工具</a></h3>
<P> <input type=
"submit"
name=
"button"
value=
"开始打包"
/></P>
<P>说明:点开始打包,之后,就是耐心等待打包完成了,根据网站文件多少,需要的时间可能会很长。打包完成之后,压缩包会存放在要打包的站点目录下,以<span style=
'color:red;'
>打包时间+不定长随机字符串+jackfeng.zip</span>这样命名,请登陆ftp后下载。</P>
</form>
</body>
</html>
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/551.html
评论列表(1条)
不这工具不靠谱,概念说的好,无可用性