Décompressez un fichier avec PHP
Cet article fournit une explication détaillée sur la façon de décompresser efficacement un fichier en utilisant PHP. Bien que l'approche initiale utilisant la fonction système avec la commande unzip puisse sembler simple, nous présentons une solution plus robuste et sécurisée utilisant les extensions intégrées de PHP.
Extensions intégrées
PHP propose des extensions natives comme ZipArchive pour gérer les fichiers compressés. Ces extensions garantissent la sécurité et évitent le besoin d'appels système externes.
Exemple d'utilisation :
$zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo 'Extraction successful!'; } else { echo 'Extraction failed!'; }
OBTENIR une sécurité variable
Lors de la réception d'une entrée via Variables $_GET, il est crucial de donner la priorité à la sécurité. Le $HTTP_GET_VARS obsolète doit être remplacé par le superglobal $_GET. De plus, il est essentiel de nettoyer les entrées des utilisateurs pour éviter d'éventuelles failles de sécurité.
Extraction de répertoire
Pour extraire le fichier zip dans son répertoire actuel, déterminez le chemin absolu et fournissez comme cible d'extraction :
// Assumes 'file.zip' resides in the same directory as the script. $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 "Extraction complete: $file extracted to $path"; } else { echo "Extraction error: Failed to open $file"; }
Cette approche garantit que les fichiers extraits sont placés au bon emplacement sans compromettre la sécurité ni dépendre potentiellement de appels système non sécurisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!