PHP中的文件解压
您希望使用 PHP 解压文件,但当您尝试通过 URL 传递文件名时遇到了困难。让我们深入探讨问题并为您提供解决方案。
错误分析
您通过 $_GET 获取文件名,但代码中使用了过时的 $HTTP_GET_VARS,PHP 建议使用 $_GET。此外,您使用 system('unzip $master.zip') 解压文件,这是不安全的,因为它需要在服务器上执行系统调用。
推荐解决方案
PHP 提供了专用于处理压缩文件的扩展,即 ZipArchive。推荐使用它,如下所示:
$zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo '解压成功!'; } else { echo '解压失败!'; }
处理相对路径
如果您希望将文件解压到与文件所在的目录中,您可以确定文件的绝对路径并将其指定为解压目标,如下所示:
$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 "解压成功! $file 已解压到 $path"; } else { echo "解压失败!无法打开 $file"; }
安全提示
始终对用户输入进行验证,以防止恶意代码注入。请牢记:
务必对用户输入进行验证!
以上是如何在 PHP 中安全地从 URL 解压缩文件?的详细内容。更多信息请关注PHP中文网其他相关文章!