Je ne peux que supposer que votre code provient d'un tutoriel quelque part en ligne ? Dans ce cas, bon travail d'essayer de le comprendre par vous-même. D'un autre côté, le fait que ce code puisse être publié en ligne quelque part comme étant la manière correcte de décompresser un fichier est un peu effrayant.
PHP a des extensions intégrées pour traiter les fichiers compressés. Il ne devrait pas être nécessaire d'utiliser system
appelle à cela. ZipArchive
docs est une option.
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$zip->extractTo('/myzips/extract_path/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
De plus, comme d'autres l'ont fait remarquer, $HTTP_GET_VARS
est déprécié depuis la version 4.1 ... qui date d'il y a très longtemps. Ne l'utilisez pas. Utilisez le $_GET
superglobale à la place.
Enfin, soyez très prudent quant à l'acceptation de toute entrée transmise à un script via une balise $_GET
variable.
TOUJOURS NETTOYER L'ENTRÉE DE L'UTILISATEUR.
UPDATE
Conformément à votre commentaire, la meilleure façon d'extraire le fichier zip dans le même répertoire que celui où il se trouve est de déterminer le chemin d'accès au fichier et de l'extraire spécifiquement à cet endroit. Donc, vous pourriez le faire :
// 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";
}