没有不值得去解决的问题,也没有不值得去学习的技术!

在 PHP 7.4 中解压缩 ZIP 文件

参考:https://www.php.net/manual/zh/ziparchive.extractto.php 。ZipArchive::extractTo。将压缩文件解压缩到指定的目录

作者:

在

, ,

1、参考:https://www.php.net/manual/zh/ziparchive.extractto.php 。ZipArchive::extractTo。将压缩文件解压缩到指定的目录。如图1

参考:https://www.php.net/manual/zh/ziparchive.extractto.php 。ZipArchive::extractTo。将压缩文件解压缩到指定的目录
图1
PHP
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

2、最终参考实现如下

PHP

// 解压缩至的本地目标路径
$destination = storage_path('app') . $directory . '/' . microtime(true) . '.' . mt_rand();
$absolutePath = $destination . '.zip';

app(ZipHandler::class)->unzip($destination, $absolutePath);


/**
 * 解压缩 ZIP
 * @param string $destination 解压缩至的本地目标路径
 * @param string $entrie 待解压缩的文件的绝对路径
 * @return void
 */
public function unzip($destination, $entrie) {
	$zip = new \ZipArchive;
	if ($zip->open($entrie) === TRUE) {
		$zip->extractTo($destination);
		$zip->close();
	} else {
		abort(500, 'Unzip failed.');
	}
}

3、解压缩后的目录结构,与原始文件名平级且同名。如图2

解压缩后的目录结构,与原始文件名平级且同名
图2

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系