suche nach in der

ZipArchive::addFromString> <ZipArchive::addEmptyDir
Last updated: Fri, 25 May 2012

view this page in

ZipArchive::addFile

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFileFügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu

Beschreibung

bool ZipArchive::addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )

Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu.

Parameter-Liste

filename

Der Pfad zur hinzuzufügenden Datei.

localname

Falls übergeben, ist dies der lokale Name innerhalb des ZIP-Archives, der den filename überschreibt.

start

Dieser Parameter wird nicht genutzt, aber benötigt, um ZipArchive zu erweitern.

length

Dieser Parameter wird nicht genutzt, aber benötigt, um ZipArchive zu erweitern.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Dieses Beispiel öffnet ein ZIP-Dateiarchiv test.zip und fügt die Datei /pfad/zur/datei.txt als neuername.txt hinzu.

Beispiel #1 Öffnen und extrahieren

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFile('/pfad/zur/datei.txt''neuername.txt');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'Fehler';
}
?>

Anmerkungen

Hinweis:

Falls eine Datei zu einem Archiv hinzugefügt werden soll, wird PHP versuchen, die Datei zu sperren; die Sperre wird erst gelöst, nachdem die ZIP Operation beendet ist. Kurz gesagt bedeutet dies, dass eine hinzugefügte Datei erst gelöscht werden kann, nachdem das Archiv geschlossen(close()) wurde.



add a note add a note User Contributed Notes
ZipArchive::addFile
Andreas R. newsgroups2005 at geekmail de
04-Apr-2007 03:29
Currently the number of files that can be added using addFile to the ZIP archive (until it is closed) is limited by file descriptors limit. This is an easy workaround (on the bug links below you can find another workarounds):
<?php
   
/** work around file descriptor number limitation (to avoid failure
     * upon adding more than typically 253 or 1024 files to ZIP) */
   
function addFileToZip( $zip, $path, $zipEntryName ) {
       
// this would fail with status ZIPARCHIVE::ER_OPEN
        // after certain number of files is added since
        // ZipArchive internally stores the file descriptors of all the
        // added files and only on close writes the contents to the ZIP file
        // see: http://bugs.php.net/bug.php?id=40494
        // and: http://pecl.php.net/bugs/bug.php?id=9443
        // return $zip->addFile( $path, $zipEntryName );

       
$contents = file_get_contents( $path );
        if (
$contents === false ) {
            return
false;
        }
        return
$zip->addFromString( $zipEntryName, $contents );
    }
?>

ZipArchive::addFromString> <ZipArchive::addEmptyDir
Last updated: Fri, 25 May 2012