/**
*
* 创建压缩包
* @param array $arr 需要压缩的文件部分路径和文件名,形如 array(
* '/file/upload/1.php',
* '/file/upload/2011/1.jpg',
* )
*
* @return string 压缩包的部分路径和文件名,形如/file/uplaod/zip/123.zip
*/
public static function zip($arr)
{
//首先我建立一个目录
$save_path = '/file/upload/zip' . Dat::getHourPath();
$path = APPLICATION_PATH . '/destoon' . $save_path;
Sys::createDir($path);
$zipname = strval(time()) . mt_rand(100000, 999999) . '.zip';
$zip_fullname = $path . '/' . $zipname;
$zip_obj = new ZipArchive();
if ($zip_obj->open($zip_fullname, ZIPARCHIVE::CREATE) !== true) {
return false;
}
foreach ($arr as $value) {
// $zip->addFile($path, mb_convert_encoding ( basename($path), 'GBK' ,'UTF-8'));
$zip_obj->addFile( APPLICATION_PATH . '/destoon' . $value, basename($value) );
}
$zip_obj->close();
return $save_path . '/' . $zipname;
}
/**
* 解压缩
*
* @param string $zipname 压缩包的部分路径和文件名,形如'/file/upload/1.zip'
* @param string $path 解压后的文件夹全路径
*
* @return array 解压后的文件数组,部分路径和文件名,形如array(
* '/file/1.php',
* '/file/12.png',
* )
*/
public static function unzip($zipname , $path='')
{
if (!$path ) {
$path = '/file/tempzip_folder/' .
strval(time()) . mt_rand(100000, 999999);
$newpath = APPLICATION_PATH . '/destoon' . $path;
}
else {
$newpath = $path;
$path = preg_replace('#^.+/destoon(.+)$#', '$1', $newpath);
}
Sys::createDir($newpath);
$filename = APPLICATION_PATH . '/destoon' . $zipname;
//第一件事是解压
$zip = new ZipArchive();
$arr = array();
if ($zip->open($filename) === true) {
$zip->extractTo($newpath);
$zip->close();
$temp = scandir($newpath);
foreach ($temp as $value) {
if ($value != '.' && $value != '..') {
$arr[] = $path . '/' . basename($value);
}
}
}
return $arr;
}
分享到:
相关推荐
例如,可以使用`shell_exec()`函数调用系统命令(如`zip`命令行工具)来创建ZIP,或者使用第三方库如PHPZip(https://github.com/Spipu/PhpZip)来提供更多高级功能,如支持读取流、加密等。 总的来说,PHP生成ZIP...
介绍了php文件压缩之PHPZip类用法,实例分析了PHPZip类的定义与相关使用技巧 要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2. ,且php.ini配置支持zip 对于win系统,直接...
宝塔面板php7.3版本不支持ZipArchive导致程序无法后台直接更新的解决方法 在SSH命令行界面执行以下语句: cd /www/server/php/73/src/ext/zip/ /www/server/php/73/bin/phpize ./configure –with-...
介绍了php文件压缩之PHPZip类用法,实例分析了PHPZip类的定义与相关使用技巧 要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip 对于win系统,直接去掉...
接下来,我们探讨一下phpzip的主要使用方法。解压ZIP文件是其最基本的应用,你可以通过以下代码实现: ```php use PhpZip\ZipFile; $zip = new ZipFile(); $zip->openFromFile('path_to_your_zip.zip'); $zip->...
php-8.0.18.zip 包含windows下的php安装包、windows下的运行依赖 和 Linux下的源码包。php-8.0.18.zip 包含windows下的php安装包、windows下的运行依赖 和 Linux下的源码包。php-8.0.18.zip 包含windows下的php...
zip.class.php zip1.php 不需要zip库的支持,任何地方可用 用法: 把zip 文件比如说foo.zip与这两个文件上传到服务器 然后在地址栏中输入 http://yoursite.com/zip1.php?zipfile=foo.zip 就会把zip文件解压到当前...
`ZipArchive`提供了一系列方法,如`open()`, `addFile()`, `close()`等,这些方法在`PHPZip`类中被包装成更易于使用的接口。 下面是一些关键的`PHPZip`方法: 1. **`addDirectory($dirPath, $arcName='')`**:此...
使用`ZipArchive::create()`方法可以创建一个新的ZIP文件,然后通过`addFile()`或`addFromString()`方法将文件或字符串内容添加到ZIP文件中。例如: ```php $zip = new ZipArchive(); if ($zip->open('myarchive...
本文将深入探讨如何使用PHP实现在线压缩代码,以及与ZIP压缩格式相关的技术知识。 首先,我们要理解PHP如何处理文件和目录操作。PHP提供了丰富的文件系统函数,如`scandir()`用于列出目录中的所有文件,`file_put_...
php_zip,ZipArchive类,用于解决Fatal error: Class 'ZipArchive' not found in ... 先看下你的 php5\ext 这个文件夹下面是否有 php_zip.dll 这个文件,没有的话,可以在此下载! 接下来,我们就是要使php支持这个Zip...
**使用php_zip.dll** 在Windows环境下,如winxp,`php_zip.dll`是一个动态链接库文件,需要将其放到PHP的`ext`目录下,并在php.ini配置文件中启用该扩展。启用方法是在php.ini中取消`extension=php_zip.dll`行的...
以下是一些关于如何使用ZipArchive类的基本操作: 1. 打开ZIP文件: ```php $zip = new ZipArchive(); if ($zip->open('path_to_your_zip.zip') === true) { // ZIP文件成功打开 } else { // 错误处理 } ``` 2. ...
下面我们将深入探讨如何使用PHP实现在线解压ZIP文件的功能。 首先,我们需要了解PHP中的`ZipArchive`类。`ZipArchive`是PHP 5.2.0版本引入的一个内置类,专门用于处理ZIP文件。这个类提供了丰富的接口,包括打开、...
cp modules/zip.so /usr/local/php/extensions/zip.so Step 7: Update your PHP.ini Finally we need to tell PHP to load this extension. sudo vim /etc/php.ini Add the following line: extension=...
在使用之前,确保你的PHP环境已经正确地启用了`zip`扩展。如果未启用,你需要在`php.ini`配置文件中取消对`extension=zip`行的注释,或者根据你的系统和PHP版本安装相应的PECL扩展。 `PHP ZIP`扩展的核心类是`Zip...
下面将详细介绍如何使用PHP的ZipArchive类以及这个自定义类可能提供的额外功能。 1. **ZipArchive类的基本使用** - **创建ZIP文件**:通过`new ZipArchive`实例化对象,然后调用`open()`方法创建一个新的ZIP文件或...
- **自动化部署**:在持续集成/持续部署(CI/CD)流程中,可以使用PHPzip打包代码并上传到服务器。 总之,新版的PHPzip为PHP开发者提供了一个强大且易用的工具,使得处理ZIP文件变得更加便捷,无论是日常开发还是复杂...
在这个场景中,我们关注的是如何使用PHP解压ZIP文件。下面将详细介绍PHP解压ZIP文件的核心知识点,并提供相关的代码示例。 ### PHP ZIP扩展 PHP提供了一个内置的ZIP扩展,名为`ZipArchive`,用于处理ZIP文件。这个...
- **添加文件到ZIP**:使用`explode`函数将`$filestr`字符串分割成数组,然后遍历这个数组,使用`$zip->addFile($one_file_name)`将每个文件添加到ZIP文件中。 - **关闭ZIP文件**:最后调用`$zip->close()`关闭ZIP...