- 浏览: 408263 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wcjagta:
...
dedecms插件开发教程 -
xc2013:
看起来不错 先下载来试试
ECSHOP完全静态化解决方法 -
greemranqq:
你好,我在xp 上做实验,也是JS css带不过来,关于 ro ...
nginx资源定向 css js路径问题 -
hotsmile:
表结构给出来吧,测试的提示说要注册,
中国移动CMPP短信开发平台通讯包 2.8 -
mengdejun:
gang80306176 写道这个插件怎么用和安装普通插件一样 ...
phpcms2008 sp4单网页编辑器插件
<?php class PHPZip { function Zip($dir, $zipfilename) { if (@function_exists ( 'gzcompress' )) { $curdir = getcwd (); if (is_array ( $dir )) { $filelist = $dir; } else { $filelist = $this->GetFileList ( $dir ); } if ((! empty ( $dir )) && (! is_array ( $dir )) && (file_exists ( $dir ))) chdir ( $dir ); else chdir ( $curdir ); if (count ( $filelist ) > 0) { foreach ( $filelist as $filename ) { if (is_file ( $filename )) { $fd = fopen ( $filename, "r" ); $content = fread ( $fd, filesize ( $filename ) ); fclose ( $fd ); if (is_array ( $dir )) $filename = basename ( $filename ); $this->addFile ( $content, $filename ); } } $out = $this->file (); chdir ( $curdir ); $fp = fopen ( $zipfilename, "w" ); fwrite ( $fp, $out, strlen ( $out ) ); fclose ( $fp ); } return 1; } else return 0; } function GetFileList($dir) { if (file_exists ( $dir )) { $args = func_get_args (); $pref = $args [1]; $dh = opendir ( $dir ); while ( $files = readdir ( $dh ) ) { if (($files != ".") && ($files != "..")) { if (is_dir ( $dir . $files )) { $curdir = getcwd (); chdir ( $dir . $files ); $file = array_merge ( $file, $this->GetFileList ( "", "$pref$files/" ) ); chdir ( $curdir ); } else $file [] = $pref . $files; } } closedir ( $dh ); } return $file; } var $datasec = array (); var $ctrl_dir = array (); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; /** * Converts an Unix timestamp to a four byte DOS date and time format (date * in high two bytes, time in low two bytes allowing magnitude comparison). * * @param integer the current Unix timestamp * * @return integer the current date in a four byte DOS format * * @access private */ function unix2DosTime($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; } // end if return (($timearray ['year'] - 1980) << 25) | ($timearray ['mon'] << 21) | ($timearray ['mday'] << 16) | ($timearray ['hours'] << 11) | ($timearray ['minutes'] << 5) | ($timearray ['seconds'] >> 1); } // end of the 'unix2DosTime()' method /** * Adds "file" to archive * * @param string file contents * @param string name of the file in the archive (may contains the path) * @param integer the current timestamp * * @access public */ function addFile($data, $name, $time = 0) { $name = str_replace ( '\\', '/', $name ); $dtime = dechex ( $this->unix2DosTime ( $time ) ); $hexdtime = '\x' . $dtime [6] . $dtime [7] . '\x' . $dtime [4] . $dtime [5] . '\x' . $dtime [2] . $dtime [3] . '\x' . $dtime [0] . $dtime [1]; eval ( '$hexdtime = "' . $hexdtime . '";' ); $fr = "\x50\x4b\x03\x04"; $fr .= "\x14\x00"; // ver needed to extract $fr .= "\x00\x00"; // gen purpose bit flag $fr .= "\x08\x00"; // compression method $fr .= $hexdtime; // last mod time and date // "local file header" segment $unc_len = strlen ( $data ); $crc = crc32 ( $data ); $zdata = gzcompress ( $data ); $c_len = strlen ( $zdata ); $zdata = substr ( substr ( $zdata, 0, strlen ( $zdata ) - 4 ), 2 ); // fix crc bug $fr .= pack ( 'V', $crc ); // crc32 $fr .= pack ( 'V', $c_len ); // compressed filesize $fr .= pack ( 'V', $unc_len ); // uncompressed filesize $fr .= pack ( 'v', strlen ( $name ) ); // length of filename $fr .= pack ( 'v', 0 ); // extra field length $fr .= $name; // "file data" segment $fr .= $zdata; // "data descriptor" segment (optional but necessary if archive is not // served as file) $fr .= pack ( 'V', $crc ); // crc32 $fr .= pack ( 'V', $c_len ); // compressed filesize $fr .= pack ( 'V', $unc_len ); // uncompressed filesize // add this entry to array $this->datasec [] = $fr; $new_offset = strlen ( implode ( '', $this->datasec ) ); // now add to central directory record $cdrec = "\x50\x4b\x01\x02"; $cdrec .= "\x00\x00"; // version made by $cdrec .= "\x14\x00"; // version needed to extract $cdrec .= "\x00\x00"; // gen purpose bit flag $cdrec .= "\x08\x00"; // compression method $cdrec .= $hexdtime; // last mod time & date $cdrec .= pack ( 'V', $crc ); // crc32 $cdrec .= pack ( 'V', $c_len ); // compressed filesize $cdrec .= pack ( 'V', $unc_len ); // uncompressed filesize $cdrec .= pack ( 'v', strlen ( $name ) ); // length of filename $cdrec .= pack ( 'v', 0 ); // extra field length $cdrec .= pack ( 'v', 0 ); // file comment length $cdrec .= pack ( 'v', 0 ); // disk number start $cdrec .= pack ( 'v', 0 ); // internal file attributes $cdrec .= pack ( 'V', 32 ); // external file attributes - 'archive' bit set $cdrec .= pack ( 'V', $this->old_offset ); // relative offset of local header $this->old_offset = $new_offset; $cdrec .= $name; // optional extra field, file comment goes here // save to central directory $this->ctrl_dir [] = $cdrec; } // end of the 'addFile()' method /** * Dumps out file * * @return string the zipped file * * @access public */ function file() { $data = implode ( '', $this->datasec ); $ctrldir = implode ( '', $this->ctrl_dir ); return $data . $ctrldir . $this->eof_ctrl_dir . pack ( 'v', sizeof ( $this->ctrl_dir ) ) . // total # of entries "on this disk" pack ( 'v', sizeof ( $this->ctrl_dir ) ) . // total # of entries overall pack ( 'V', strlen ( $ctrldir ) ) . // size of central dir pack ( 'V', strlen ( $data ) ) . // offset to start of central dir "\x00\x00"; // .zip file comment length } // end of the 'file()' method } // end of the 'PHPZip' class ?>
<?php require'PHPZip.php'; $z = new PHPZip(); //新建立一个zip的类 //$z->Zip("","z.zip");当前文件夹压缩 $z->Zip(array("PHPZip.php"),"phpx.zip") ?>
- zip_lib.rar (2.2 KB)
- 下载次数: 9
发表评论
-
php异步操作类库
2011-06-05 16:01 1830httpclient for php 的选择常用方案有以 ... -
织梦HTTP IMAGE下载类
2011-06-05 14:57 1877<?php if(!defined('DEDEINC ... -
php汉字转拼音
2011-06-05 14:41 1614<?php /**************** ... -
PHP采集利器:Snoopy 试用心得
2011-06-05 14:34 14078Snoopy是一个php类,用 ... -
php异步调用 提高用户体验
2011-05-30 14:22 1320这是我的一个技术很好的朋友写的,要我发表在我的博客上可让php ... -
PHP 异步调用 后台调用 持续执行 断开连接/浏览器
2011-05-26 10:31 1720标题很怪,因为我也 ... -
php socket模拟POST GET请求 fsockopen版
2011-05-26 10:14 7390function httpRequestGET($url){ ... -
php socket GET POST提交方法(HttpClient) 框架
2011-05-25 18:29 5559<?php /* Version 0.9, 6th ... -
mantis
2011-05-25 09:50 1296mantis 缺陷管理平台Mantis,也做Mantis ... -
Curl参数一览
2011-05-06 17:30 1487* 目录 1. 介绍 ... -
PHPRPC
2011-04-24 11:01 1330PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台 ... -
PHP身份证验证程序
2011-04-24 10:56 1273<?php // 计算身份证校验码,根据国家标准GB 116 ... -
nginx 502 Bad Gateway 错误问题收集
2011-04-23 09:43 1792502是FastCGI出现问题,所以从FastCGI配置入手。 ... -
深入理解PHP内存管理之谁动了我的内存
2011-04-12 21:57 851首先让我们看一个问题: ... -
socket模拟post表单
2011-04-11 15:40 2810post的本质就是发送给目的程序一个标志为post的协议串如下 ... -
OAUTH协议
2011-04-09 09:59 1117OAUTH协议为用户资源的 ... -
nginx/windows: 让nginx以服务的方式运行
2011-04-09 09:33 1158在windows下安装了nginx, 郁闷是发现它没有以服 ... -
ThinkPHP处理海量数据分表机制详细代码
2011-04-07 18:27 7226应用ThinkPHP内置的分表算法处理百万级用户数据. ... -
php 分库分表hash算法
2011-04-07 18:16 1702//分库分表算法 function calc_hash_d ... -
nginx配置文件实例: php (fastcgi), perl, proxy, rrd, nagios
2011-04-06 20:33 1840nginx.conf worker_processes 5; ...
相关推荐
接下来,我们将详细探讨PHP生成zip压缩文件的方法。 首先,我们需要了解在PHP中生成zip文件的基本原理。PHP支持通过多种方式生成zip文件,其中一种是利用内置的ZipArchive类,另一种是通过第三方库,比如PHPZip库。...
接下来,我们来看如何使用PHP生成ZIP压缩文件。PHP内置了`ZipArchive`类,可以方便地进行文件和目录的压缩操作: 1. **创建ZipArchive实例**:`$zip = new ZipArchive();` 2. **打开或创建ZIP文件**:使用`open`...
在PHP中生成ZIP文件是一项常见的任务,特别是在处理网站文件打包、数据备份或文件分发时。`PHPZip`是一个PHP类,它提供了方便的方法来创建和管理ZIP档案。以下是对这个话题的详细解释: 首先,我们需要理解`PHPZip`...
"PHP生成压缩文,不带要压缩文件的根目录"这个话题,主要涉及的是如何使用PHP的ZipArchive类来创建一个ZIP文件,但不包含源文件的根目录路径。下面将详细介绍这一知识点及其相关技术。 首先,我们需要了解PHP的Zip...
本资源“php生成zip文件类.zip”提供了一个PHP类库,它可以帮助开发者更方便地创建和管理ZIP文件。下面我们将深入探讨这个类库以及PHP操作ZIP文件的相关知识点。 1. **ZIP文件格式**: ZIP是一种通用的文件压缩...
本文将深入探讨“一个很实用的PHP ZIP压缩类库源码文件”,帮助开发者理解如何利用PHP处理ZIP文件,提升工作效率。 首先,我们要知道PHP内置了`ZipArchive`类,它是用于处理ZIP文件的主要工具。然而,为了简化操作...
ZIP是一种流行的文件格式,用于将一个或多个文件打包成一个单一的压缩文件,以节省存储空间和提高传输效率。在Java中,我们可以使用`java.util.zip`包中的`ZipOutputStream`和`ZipEntry`类来实现文件的压缩。以下是...
又一款与PHP解压缩相匹配的打包(压缩)工具,其特点是可以在远程服务器上方便、快速的压缩文件,并且提供下载链接,方便下载,是网站备份的好工具。其他用途有待开发!(声明:此程序为开源程序,本人只是对其二次...
PHPZip类,生成zip格式的压缩包,可以直接在服务器上生成压缩包,也可以生成压缩并下载,也可以直接在线解压以及获得压缩包的相应信息
1.生成压缩文件,压缩文件名格式: 2.压缩文件存放在根目录 /upload/zipfile/年月/自定义的压缩文件名.zip 3.点击下载压缩包,系统开始对压缩文件打包,打包完成后自动开始下载 4.为了防止暴露压缩包文件路径,...
`addFile`方法是处理文件添加到压缩包的关键部分,它将读取到的文件内容和文件名传入,生成ZIP格式的数据块,并存入一个缓冲区中。 `GetFileList`方法则是遍历目录,递归地获取所有文件的相对路径,并将这些路径...
本文实例讲述了PHP生成zip压缩包的常用方法。分享给大家供大家参考,具体如下: 压缩一个文件 我们将一个文件生成一个压缩包。 <?php $path = c:/wamp/www/log.txt; $filename = test.zip; $zip = new Zip...
本文将详细讨论如何使用PHP进行文件的解压和压缩打包,以及如何利用提供的"php解压或压缩打包文件源码.zip"进行相关操作。 首先,PHP提供了两个核心的库,用于处理文件的压缩和解压:`ZipArchive` 和 `gz` 函数系列...
在PHP开发中,处理Excel文件是一项常见的任务,无论是数据分析、报表生成还是用户交互,都需要高效且灵活的数据导入导出功能。PHPExcel库便是为此目的而生,它提供了强大的API,使得开发者能够轻松地读取、创建和...
在本文中,我们将深入探讨如何使用PHP实现解压缩zip文件以及下载功能。这个过程主要依赖于PHP自带的ZipArchive扩展库,它提供了对zip文件的操作支持。以下是实现这一功能的详细步骤: 首先,我们需要确保PHP环境中...
ZipArchive类提供了创建、读取、修改和删除ZIP压缩文件的能力。 1. **创建和添加文件到ZIP** 要创建一个新的ZIP文件并添加文件,我们需要实例化一个ZipArchive对象,然后调用`open()`方法创建一个新文件或打开已...
PHP在线打包在线压缩ZIP工具使用方法: 下载到本地之后,上传PHPZip.php文件到你的服务器上,对其进行访问。 默认密码:xibo123 修改密码方法:在地址栏访问你服务器上PHPZip.php文件,在其后面加上?pwd=密码代码...
4. 压缩文件:在生成Excel文件后,调用`laravel-excel-zip`提供的方法将其压缩为ZIP。 5. 下载服务:最后,通过Laravel的路由和控制器提供一个下载链接,让用户可以下载ZIP文件。 从提供的压缩包文件名`cblink-...