Я могу только предположить, что ваш код пришел из учебника где-то в Интернете?В таком случае, хорошая работа, пытаясь понять это самостоятельно.С другой стороны, тот факт, что этот код может быть опубликован где-то в Интернете как правильный способ распаковать файл, немного пугает.
PHP имеет встроенные расширения для работы со сжатыми файлами.Для этого не нужно использовать system
вызовы.ZipArchive
документы является одним из вариантов.
$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 ... что было очень давно.Не используйте это.Вместо этого используйте $_GET
superglobal.
Наконец, будьте очень осторожны, принимая любые входные данные, передаваемые в скрипт через переменную $_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";
}