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