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

Extract ZIP Files in PHP 7.4

Reference: https://www.php.net/manual/zh/ziparchive.extractto.php . ZipArchive::extractTo. Extracts the compressed file to a specified directory

1. Reference: https://www.php.net/manual/zh/ziparchive.extractto.php . ZipArchive::extractTo. Extracts the compressed file to a specified directory. As shown in Figure 1

Reference: https://www.php.net/manual/zh/ziparchive.extractto.php . ZipArchive::extractTo. Extracts the compressed file to a specified directory
Figure 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. The final reference implementation is as follows

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. The extracted directory structure is at the same level as and has the same name as the original file. As shown in Figure 2

The extracted directory structure is at the same level as and has the same name as the original file
Figure 2

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

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

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

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

关于我  ·  GitHub  ·  邮件联系