Häufig sollen Benutzer mehrere Dateien auf einmal als .zip verpackt hochladen können. Sofern es die Serverkonfiguration zulässt, empfiehlt es sich auf Linux und Unix Systemen über exec() und unzip die folgende Variante zu verwenden (nicht bei Windows – hier müssten die über exec() ausgeführten Operationen angepasst werden).
<?php
//Funktion:
function
unzip(
$location
,
$newLocation
){
if
(
exec
(
"unzip $location"
,
$arr
)){
mkdir
(
$newLocation
);
for
(
$i
= 1;
$i
<
count
(
$arr
);
$i
++){
$file
= trim(preg_replace(
"~inflating: ~"
,
""
,
$arr
[
$i
]));
copy
(
$location
.
'/'
.
$file
,
$newLocation
.
'/'
.
$file
);
unlink(
$location
.
'/'
.
$file
);
}
return
TRUE;
}
else
{
return
FALSE;
}
}
?>
//Anwendung:
<?php
include
'functions.php'
;
if
(unzip(
'zipedfiles/test.zip'
,
'unziped/test'
))
echo
'Erfolgreich entpackt'
;
else
echo
'Entpacken fehlgeschlagen'
;
?>