php 在线打包_支持子目录

 更新时间:2008年06月28日 00:12:27   作者:  
用php实现的在线打包的工具,并可以支持子目录使用纯php对目录和文件进行打包压缩,压缩当然不能跟winrar比(压缩比差不多相当于winrar压缩时的最快模式)。
程序使用了php的zip扩展,如果服务器支持,那就可以用了^_^,生成的zip压缩包可以用winrar等来解压的,当然也可以用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>

相关文章

  • 查看当前laravel版本的三种方法

    查看当前laravel版本的三种方法

    laravel是一个流行的PHP开发框架,用于构建高性能的Web应用程序,在开发和维护laravel项目时,了解当前使用的laravel版本是非常重要的,本文将介绍三种方法来查看laravel版本,需要的朋友可以参考下
    2023-11-11
  • PHP使用token防止表单重复提交的方法

    PHP使用token防止表单重复提交的方法

    这篇文章主要介绍了PHP使用token防止表单重复提交的方法,通过生成一个加密后的随机数存入session的token变量,同时将该值放入表单隐藏提交,达到防止表单重复提交的功能,需要的朋友可以参考下
    2016-04-04
  • 浅谈PHP中的<<<运算符

    浅谈PHP中的<<<运算符

    本文给大家介绍的是PHP中提供了<<<运算符的使用方法,非常的简单,有需要的小伙伴可以参考下
    2016-04-04
  • PHP实现二维数组按某列进行排序的方法

    PHP实现二维数组按某列进行排序的方法

    这篇文章主要介绍了PHP实现二维数组按某列进行排序的方法,结合实例形式分析了php二维数组排序的技巧,涉及array_multisort函数的使用方法,需要的朋友可以参考下
    2016-11-11
  • ezSQL PHP数据库操作类库

    ezSQL PHP数据库操作类库

    WordPress 使用的数据库操作类就是它 -- ezSQL 我用了好多年了,我特别喜欢它的几个类方法,可以有效提高代码简洁度。
    2010-05-05
  • php利用ffmpeg提取视频中音频与视频画面的方法详解

    php利用ffmpeg提取视频中音频与视频画面的方法详解

    想要提取视频中的音频信息,首选的技术是ffmpeg,ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。这篇文章主要给大家介绍了PHP利用ffmpeg提取视频中音频与视频画面的相关资料,需要的朋友可以参考下。
    2017-06-06
  • 浅析php面向对象public private protected 访问修饰符

    浅析php面向对象public private protected 访问修饰符

    本篇文章是对php面向对象public private protected 访问修饰符进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP+swoole+linux实现系统监控和性能优化操作示例

    PHP+swoole+linux实现系统监控和性能优化操作示例

    这篇文章主要介绍了PHP+swoole+linux实现系统监控和性能优化操作,结合实例形式分析了php启动swoole及Linux性能监控相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • PHP 使用openssl 扩展实现公钥加密的方法

    PHP 使用openssl 扩展实现公钥加密的方法

    下面小编就为大家分享一篇PHP 使用openssl 扩展实现公钥加密的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • php学习之function的用法

    php学习之function的用法

    用户自定义函数也称自定义函数,它们不是PHP提供的,是由程序员创建的.由于自己创建了这样的函数,所以就可以完全控制这些函数.因此可以让一个函数完全按照自己希望的方式运行
    2012-07-07

最新评论