Zip Extension fehlerhaft?

dreambaser

Erfahrenes Mitglied
Hallo leute,

ich beschäftige mich zur Zeit mit den Zip Möglichkeiten von PHP.
Dabei habe ich ein Script ausprobiert, was die Aufgaben erledigt, die ich einbauen will.

Nur wenn ich das Script starte kommt bei mir eine Fehlermeldung die ich einfach nicht gelöst bekomme.

Hier mal das Script:

PHP:
function addFolderToZip($dir, $zipArchive, $zipdir = ''){
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {

            //Add the directory
            $zipArchive->addEmptyDir($dir);
           
            // Loop through all the files
            while (($file = readdir($dh)) !== false) {
           
                //If it's a folder, run the function again!
                if(!is_file($dir . $file)){
                    // Skip parent and root directories
                    if( ($file !== ".") && ($file !== "..")){
                        addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/");
                    }
                   
                }else{
                    // Add the files
                    $zipArchive->addFile($dir . $file, $zipdir . $file);
                   
                }
            }
        }
    }
}

Wenn ich das Script starte kommt die Fehlermeldung:

Call to a member function addEmptyDir() on a non-object

Ich weiss einfach nicht, warum da ein Fehler kommt. Hat vielleicht einer von euch eine Ahnung?

mfg
Dreambaser
 
Beim Funktionsaufruf wird der Parameter $zipArchive nicht mit dem erwarteten Object befüllt. Das sagt die Fehlermeldung ziemlich klar. Also solltest du eher dort anfangen wo die funktion addFolderToZip aufgerufen wird.
 
Hallo,

ich rufe ja die Funktion direkt auf also:

PHP:
addFolderToZip(DIR_WS_ROOT,$filename);

$filename enthält dabei die Zip Datei.

Nur trotzdem kommt diese Fehlermeldung.
 
Sind das nicht 3 Parameter
PHP:
function addFolderToZip($dir, $zipArchive, $zipdir = ''){

und du benutzt nur 2:
PHP:
addFolderToZip(DIR_WS_ROOT,$filename);

Oder ist das bei Php egal ? ^^ Mit damit nit so vertraut

mfg
 
Der 3. Parameter ist optional.. daher nich weiter von bedeutung.

Aber es steht fest das $filename kein Objekt ist, vielleicht nur der Dateiname?
und so kann das ganze nicht funktionieren. Hier wird ein Objekt deiner Zip Klasse erwartet.

Du kannst mit var_dump() mal ausgeben lassen was du an dieser Stelle genau vorliegen hast. Des weiteren solltest du über deine Variablennamen nachdenken wenn das ein Objekt sein soll.
 
Danke für den Tip.

Ich habe es gelöst bekommen. Man muss vorher einfach mal die Klasse starten ;-)
sonst wird das nichts. Das habe ich total vergessen. Nun klappt das ganze ohne Probleme.


mfg
Dreambaser
 
Zurück