This is a script I wrote I few weeks ago... have fun, it's in French 😛
Upload your zip file in the same folder this script, chmod the directory to 777, same for the PHP file.
Then change the value of $strZIP for the name of your ZIP file.
It will create a directory and extract all files/directories...
<?php
$strZIP = 'phpbbrc7to8.zip';
$strZIP1 = preg_replace('/[\W]/', '_', $strZIP);
$strZIP1 = preg_replace('/_+/', '_', $strZIP1);
if(!file_exists('./' . $strZIP1)) {
mkdir($strZIP1, 0777) or die('impossible de créer le répertoire');
}
$objZIP = new ZipArchive();
$objZIP = zip_open($strZIP);
if($objZIP) {
while($objFichier = zip_read($objZIP)) {
$strFichier = zip_entry_name($objFichier);
echo '« ' . $strFichier . ' »<br />';
$arrRepertoires = explode('/', $strFichier);
$strFichier1 = $arrRepertoires[count($arrRepertoires) - 1];
unset($arrRepertoires[count($arrRepertoires) - 1]);
$strRepertoire = './' . $strZIP1 . '/';
for($intR = 0; $intR < count($arrRepertoires); $intR++) {
$strRepertoire .= $arrRepertoires[$intR] . '/';
if(!file_exists($strRepertoire)) {
echo '* Création du répertoire « ' . $strRepertoire . ' »...';
echo ((@mkdir($strRepertoire)) ? ' ok !' : ' erreur !') . '<br />';
flush();
}
}
if($strFichier1 <> '') {
echo '* Ouverture...';
if(@zip_entry_open($objZIP, $objFichier)) {
echo ' ok !<br />';
echo '* Création du fichier...';
$resFichier = @fopen(($strRepertoire . $strFichier1), 'wb+');
if(!$resFichier) {
echo ' erreur !<br />';
} else {
echo ' ok !<br />';
echo '* Copie du fichier...';
if(!@fwrite($resFichier, zip_entry_read($objFichier, zip_entry_filesize($objFichier)))) {
echo ' erreur !';
} else {
echo ' ok !';
}
echo '<br />';
}
fclose($resFichier);
} else {
echo ' erreur !<br />';
}
}
echo '<br />';
flush();
}
} else {
echo 'échec';
}
?>