文档章节

PHP to copress whole folder

初級程序猿
 初級程序猿
发布于 2016/09/01 10:03
字数 151
阅读 4
收藏 0

This code works for both windows and linux.

Directory is something like:

home/
    file1.html
    file2.html
Another_Dir/
    file8.html
    Sub_Dir/
        file19.html
<?php
function Zip($source, $destination)
    {
        if (!extension_loaded('zip') || !file_exists($source)) {
        return false;
    }

$zip = new ZipArchive();
    if (!$zip->open($destination, ZIPARCHIVE::CREATE)) 
        {
            return false;
        }

    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') 
        {
            DEFINE('DS', DIRECTORY_SEPARATOR); //for windows
        } 
    else 
        {
            DEFINE('DS', '/'); //for linux
        }

$source = str_replace('\\', DS, realpath($source));

if (is_dir($source) === true)
    {
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
        echo $source;
        foreach ($files as $file)
            {
                $file = str_replace('\\',DS, $file);
                // Ignore "." and ".." folders
                if( in_array(substr($file, strrpos($file, DS)+1), array('.', '..')) )
                continue;

                $file = realpath($file);

                if (is_dir($file) === true)
                    {
                        $zip->addEmptyDir(str_replace($source . DS, '', $file . DS));
                    }
                else if (is_file($file) === true)
                    {
                        $zip->addFromString(str_replace($source . DS, '', $file), file_get_contents($file));
                    }
                echo $source;
            }
    }
else if (is_file($source) === true)
    {
        $zip->addFromString(basename($source), file_get_contents($source));
    }

    return $zip->close();
    }
?>

 

本文转载自:

共有 人打赏支持
初級程序猿
粉丝 0
博文 33
码字总数 984
作品 0
新界
程序员
私信 提问
新手问个关于Smarty的问题,求帮助

哪位有空帮忙看下这段(安装开源书目检索目录vufind文档中的一段),刚接触这些,没明白什么意思。第二段说重要的是把Smarty的内容安装到PHP文件夹,而不是单纯的复制,而第一段又说直接复制...

9527
2012/11/18
308
2
视频拍照上传头像功能(php新篇)

许多PHP网站都有视频上传头像功能,如51.com,猪八戒网站等等。 那么这种功能如何实现呢? 要想在php中实现视频拍照我们需要借助于flash插件了,由flash拍出的确照片我们再通过php的$GLOBAL...

crossmix
2015/11/29
49
0
php最新版本5.5+ curl开启问题

只在官网查到了这段信息: I had to also also copy libssh2.dll into my Apache24 folder for this to work with my PHP 5.6.2 installation. So altogether I had to do the following: Mo......

ccav5
2015/07/29
1K
3
FongR/rartracker

rartracker A modern front and backend bittorrent tracker written in AngularJS and PHP. Current version 0.3.2 Author the swedish torrent king Feature highlights Super responsive ......

FongR
2017/10/02
0
0
MAC OSX10.10上搭建Apache,PHP,MySQL5.6.22,phpMyAdmin开发

Get Apache, MySQL, PHP and phpMyAdmin working on OSX 10.10 Yosemite May 1, 2015 332 Comments Get your Local Web Development Environment Up & Running on OSX 10.10 Yosemite With A......

lingfeng72
2015/09/09
418
0

没有更多内容

加载失败,请刷新页面

加载更多

2019 年最好的 7 款虚拟私人网络服务

糟糕的数据安全会带来极大的代价,特别是对企业而言。它会大致大规模的破坏并影响你的品牌声誉。尽管有些企业可以艰难地收拾残局,但仍有一些企业无法从事故中完全恢复。不过现在,你很幸运地...

linuxCool
23分钟前
1
0
OSChina 周一乱弹 —— 加油,还有11个小时就下班了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @_全村的希望 :吴亦凡把大碗面正儿八经做成单曲了,你别说,还挺好听 《大碗宽面》- 吴亦凡 手机党少年们想听歌,请使劲儿戳(这里) @tom_t...

小小编辑
44分钟前
147
8
C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
7
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
6
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部