我只能假设你的代码来自一个在线的教程?在这种情况下,好的工作试图自己弄清楚。另一方面,事实上,这个代码实际上可以在网上发布,因为正确的方式来解压缩文件是有点可怕。
PHP有内置的扩展来处理压缩文件。应该没有必要为此使用系统调用。 ZipArchivedocs是一个选项。
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$zip->extractTo('/myzips/extract_path/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
此外,正如其他人已评论,$ HTTP_GET_VARS已被弃用自4.1版本…这是一个reeeeeally很久以前。不要使用它。使用$ _GET超全局。
最后,要非常小心地接受通过$ _GET变量传递给脚本的任何输入。
始终保持用户输入。
更新
根据您的评论,将zip文件解压缩到它所在的同一目录的最佳方式是确定文件的硬路径,并将其专门提取到该位置。所以,你可以做:
// assuming file.zip is in the same directory as the executing script.
$file = 'file.zip';
// get the absolute path to $file
$path = pathinfo(realpath($file), PATHINFO_DIRNAME);
$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
// extract it to the path we determined above
$zip->extractTo($path);
$zip->close();
echo "WOOT! $file extracted to $path";
} else {
echo "Doh! I couldn't open $file";
}