使用 PHP 提取 ZIP 文件
尝试使用 PHP 解压缩文件时,通过 URL 传递文件名时可能会遇到困难如您的代码中所示:
<?php $master = $_GET["master"]; system('unzip $master.zip'); // Incorrect syntax ?>
更正语法
主要问题在于 system() 调用的语法。正确的语法是像这样调用系统命令:
system("unzip $master.zip");
使用内置 PHP 函数
虽然 system() 函数可以完成任务,一般不推荐。 PHP 提供了用于处理压缩文件的内置扩展,例如 ZipArchive。以下是使用 ZipArchive 的示例:
<?php $zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo 'Extraction successful!'; } else { echo 'Extraction failed: ' . $zip->getStatusString(); } ?>
其他注意事项
提取到当前目录的解决方案
要将 ZIP 文件提取到其所在的同一目录,您可以确定该文件的绝对路径文件并将其指定为提取目标:
<?php $file = 'file.zip'; $path = pathinfo(realpath($file), PATHINFO_DIRNAME); $zip = new ZipArchive; $res = $zip->open($file); if ($res === TRUE) { $zip->extractTo($path); $zip->close(); echo "Extraction complete!"; } else { echo "Extraction failed: " . $zip->getStatusString(); } ?>
以上是如何使用 PHP 安全高效地提取 ZIP 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!