Moin.
Arbeite mit meinem Framework an einem PIP (PackageInstallationPlugin), welches die Paketinformationen aus einer package.xml ausliest und das Paket installiert. Funktioniert auch alles soweit.
Nun soll er auch noch Dateien installieren. Die Dateien werden als files.zip in dem Paket selbst gepackt und vom System auf ../ entpackt (../ ist das Standardverzeichniss vom System, ausgehend aus ./acp).
Das Entpacken von neuen Dateien aus files.zip funktioniert, wenn er allerdings eine Datei entpacken soll, die bereits existiert, überschreibt er die alte nicht. An den Dateiberechtigungen liegt es nicht; habe per chmod -R 0777 in der Komandozeile alle Dateien global beschreibbar gemacht, trotzdem gleiches Problem
Fehlermeldungen kommen keine.
Folgendermaßen wird das Archiv geöffnet:
PHP-Code:
public function openArchive() {
if ($this->isOpened) return;
//create new archive object
$this->archive = new ZipArchive();
//open the archive
$this->file = $this->archive->open($this->archiveName);
//archive is opened now
$this->isOpened = true;
}
Habe btw. auch das setzen von den Flags ZipArchive::CHECKCONS, ZipArchive::OVERWRITE und ZipArchive::EXCL probiert, jedoch ohne Erfolg.
Hier einige Daten zum System:
PHP Version: 5.3.0
System: Ubuntu Netbook Remix 9.10 (läuft auf LAMPP) [Linux darwin 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686]
API: Apache 2.0 Handler
Registered PHP Streams: https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Zip-based phar archives: enabled
Zip: enabled
Am System sollte es nicht liegen...
Gibt es eine Lösung, das vorhandene Dateien beim Entpacken eines ZIP-Archives (per ZipArchive::extractTo()) überschrieben werden?
Gruß,
deMaddin