This article mainly introduces the compression package of PHP files, which has certain reference value. Now I share it with everyone. Friends in need can refer to
In order to facilitate future reuse, I have written three functions here, which must be placed together under a class. Readers can also separate them according to the situation, but please pay attention to changing the class name of the method call (self is used here).
Question: Here I want to compress all files (including folders) under the current path into a compressed package. I don’t want to compress extra folders. I don’t know how to do it. I hope someone with knowledge can tell me. Thank you!
/**
* add path to zip
* Here, I want to add all the files under the current path, but I don't know how to add it, I want to get help, thank you!
* @param $path
* @param $zip
*/
public static function addDirectoryToZip($path, $zip)
{
self::createPath([$path, $zip]);
$zipObj = new \ZipArchive();
if ($zipObj->open($zip, \ZipArchive::CREATE) === TRUE) {
$handler = opendir($path);
while (($filename = readdir($handler))) {
if ($filename != "." && $filename != "..") {
$tem_path = $path . DIRECTORY_SEPARATOR . $filename;
if (is_dir($tem_path)) {
self::addDirectoryToZip($tem_path, $zip);
} else {
$zipObj->addFromString(iconv('gbk', 'utf-8', $tem_path), file_get_contents($tem_path));
}
}
}
@closedir($path);
$zipObj->close();
}
} /**
* Create a or more path
* @param $path
*/
public static function createPath($path)
{
if (is_array($path)) {
foreach ($path AS $v) {
if (!is_array($v)) {
self::createOnePath($v);
} else {
die('Must be a one-dimensional array!');
}
}
} else {
self::createOnePath($path);
}
} /**
* Create a path
* @param $path
*/
public static function createOnePath($path)
{
$path = strpos(basename($path), '.') ? dirname($path) : $path;
if (!is_dir($path)) {//nonexistion path
mkdir($path, 0777, true) ? '' : die('Creation path failed!');
}
}Related recommendations:
A few lines of code to easily implement PHP file packaging and download zip
PHP file locking ensures multi-threaded writing Safety
The above is the detailed content of PHP file compressed package. For more information, please follow other related articles on the PHP Chinese website!