Køres linje 9? (echo $filename.'<br>'
Og har du en fil der hedder "adasd.php" i ZIP-arkivet?
Hvis ja, prøv at fjern den skråstreg du har sat i starten af filenavnet, så linje 10 i stedet bliver:
$zip->deleteName('adasd.php');
Så bør du i øvrigt ændre den til
$zip->deleteName($filename);
(går ud fra at du har testet med adasd.php)
Ellers ville jeg forsøge at ændre den til at bruge deleteIndex metoden.
Hvis den ikke har held med at slette filen, vil metoden returnere falsk (jf.
http://www.php.net/manual/en/ziparchive.deleteindex.php). Jeg har i nedenstående ændret det til deleteIndex, og bedt den give fejl, hvis ikke den kan slette.
- $zip = new ZipArchive;
- $x = $zip->open($target_path);
-
- if ($x === true) {
-
- for ($i = 0; $i < $zip->numFiles; $i++) {
- $filename = $zip->getNameIndex($i);
- if(!preg_match("/\.(gif|png|jpg|html|css|js)$/", $filename)){
- echo $filename.'<br>';
- if (!$zip->deleteIndex($i)) {
- echo 'Kunne ikke slette filen med indeks ' . $i;
- }
- }
-
- }
-
- $zip->extractTo("../includes/themes/".$theme_adress."/"); // change this to the correct site path
- $zip->close();
-
- unlink($target_path);
-
- }
Indlæg senest redigeret d. 27.04.2014 20:59 af Bruger #4879