Script til at pakke billeder til zipfil bliver langsommere
Hej!Jeg har et script her, som virker fint. Det er måske lidt rodet, og når jeg arbejder med f.eks. 500 billedfiler bliver det mærkbart langsommere, jo længere det kommer i processen med at pakke en zip-fil.
Har jeg overset noget i min programmering, eller belaster det PHP meget at håndtere de mange filer i hukommelsen?
<?
session_start();
include("pclzip.lib.php");
$zipnavn = "archive.zip";
$mappe = "varer/";
$antal_ad_gangen = 5;
$archive = new PclZip($zipnavn);
if(isset($_REQUEST['side'])) {
$start = $_REQUEST['side'];
} else {
$_SESSION['filer'] = "";
@unlink($zipnavn);
$handle = opendir($mappe);
while (($fil = readdir($handle)) !== false) {
if (($fil != "." && $fil != "..")) {
if(is_dir($mappe . $fil)) {
$_SESSION['filer'][] = $mappe . $fil . "/";
} else {
$_SESSION['filer'][] = $mappe . $fil;
}
}
}
$archive->create('');
$start = 0;
}
$antal_billeder = count($_SESSION['filer']);
echo "Samlet antal billeder der skal pakkes: " . $antal_billeder . "<br>Pakkes nu:<br>";
$i = $start;
while($i < $start+$antal_ad_gangen) {
echo $_SESSION['filer'][$i] . "<br>";
$archive->add($_SESSION['filer'][$i]);
$i++;
}
if($antal_billeder > ($start+$antal_ad_gangen-1)) {
$hvortil = ($start+$antal_ad_gangen);
} else {
$hvortil = $antal_billeder;
}
echo "(Pakker billede " . ($start +1) . " - " . $hvortil . ")<br>" . round((($hvortil) / $antal_billeder * 100)) . " % færdig";
if(($start+$antal_ad_gangen) < $antal_billeder) {
?>
<script type="text/javascript">
location.href='test4.php?side=<? echo ($start+$antal_ad_gangen);?>';
</script>
<?
} else {
echo "<br>Pakning lykkedes, du kan nu downloade den pakkede zip-fil her: <a href=\"" . $zipnavn . "\">". $zipnavn . "</a>";
}
?>
