あなたのコードはオンラインのどこかのチュートリアルから来たとしか思いませんか?その場合、自分でそれを理解しようとする良い仕事。一方、ファイルを解凍する正しい方法として、このコードが実際にオンラインでどこかに公開される可能性があるという事実は少し恐ろしいです。
PHPには、圧縮ファイルを処理するための組み込みの拡張機能があります。system
このために呼び出しを使用する必要はないはずです。ZipArchive
docsは1つのオプションです。
$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ファイルが存在する同じディレクトリに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";
}