ホームページ >バックエンド開発 >PHPチュートリアル >PHP で URL からファイルを安全に解凍する方法は?
PHP でのファイル解凍
PHP を使用してファイルを解凍したいが、URL 経由でファイル名を渡そうとすると問題が発生する。問題を掘り下げて解決策を提供しましょう。
エラー分析
$_GET を通じてファイル名を取得しますが、コードでは古い $HTTP_GET_VARS が使用されているため、PHP では $_GET を使用することをお勧めします。さらに、ファイルを解凍するために system('unzip $master.zip') を使用していますが、サーバー上でシステム コールを実行する必要があるため安全ではありません。
推奨される解決策
PHP は、圧縮ファイルを処理するために特別に設計された拡張機能、つまり ZipArchive を提供します。次のように使用することをお勧めします。
$zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo '解压成功!'; } else { echo '解压失败!'; }
相対パスを処理します
ファイルをファイルと同じディレクトリに抽出したい場合は、次のようにします。ファイルを特定できます絶対パスを指定し、次のように解凍ターゲットとして指定します。
$file = 'file.zip'; $path = pathinfo(realpath($file), PATHINFO_DIRNAME); $zip = new ZipArchive; $res = $zip->open($file); if ($res === TRUE) { $zip->extractTo($path); $zip->close(); echo "解压成功! $file 已解压到 $path"; } else { echo "解压失败!无法打开 $file"; }
セキュリティのヒント
悪意のあるコードの挿入を防ぐために、ユーザー入力を常に検証します。覚えておいてください:
常にユーザー入力を検証してください。
以上がPHP で URL からファイルを安全に解凍する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。