Heim >Backend-Entwicklung >PHP-Tutorial >Komprimiertes PHP-Dateipaket

Komprimiertes PHP-Dateipaket

不言
不言Original
2018-05-09 09:04:492163Durchsuche

Dieser Artikel stellt hauptsächlich das Komprimierungspaket von PHP-Dateien vor. Es hat einen gewissen Referenzwert. Jetzt kann ich es mit allen Freunden teilen, die es benötigen.

Alle Dateien im komprimierten Verzeichnis 🎜 >Um die zukünftige Wiederverwendung zu erleichtern, habe ich hier drei Funktionen geschrieben, die unter einer Klasse zusammengefasst werden müssen. Der Leser kann sie auch je nach Situation trennen, aber achten Sie bitte darauf, den Klassennamen des Methodenaufrufs (self) zu ändern wird hier verwendet).

Frage: Ich möchte nur alle Dateien (einschließlich Ordner) unter dem aktuellen Pfad in ein komprimiertes Paket komprimieren. Ich weiß nicht, wie das geht Ich hoffe, jemand mit Kenntnissen kann es mir sagen, danke!

   /**
     * add path to zip
     * Here, I want to add all the files under the current path, but I don't know how to add it, I want to get help, thank you!
     * @param $path
     * @param $zip
     */
    public static function addDirectoryToZip($path, $zip)
    {
        self::createPath([$path, $zip]);        
        $zipObj = new \ZipArchive();        
        if ($zipObj->open($zip, \ZipArchive::CREATE) === TRUE) {            
        $handler = opendir($path);            
        while (($filename = readdir($handler))) {                
        if ($filename != "." && $filename != "..") {                    
        $tem_path = $path . DIRECTORY_SEPARATOR . $filename;                    
        if (is_dir($tem_path)) {                        
        self::addDirectoryToZip($tem_path, $zip);
                    } else {                        
                    $zipObj->addFromString(iconv('gbk', 'utf-8', $tem_path), file_get_contents($tem_path));
                    }
                }
            }
            @closedir($path);            
            $zipObj->close();
        }
    }    /**
     * Create a or more path
     * @param $path
     */
    public static function createPath($path)
    {
        if (is_array($path)) {            
        foreach ($path AS $v) {                
        if (!is_array($v)) {                    
        self::createOnePath($v);
                } else {                    
                die('Must be a one-dimensional array!');
                }
            }
        } else {            
        self::createOnePath($path);
        }
    }    /**
     * Create a path
     * @param $path
     */
    public static function createOnePath($path)
    {
        $path = strpos(basename($path), '.') ? dirname($path) : $path;       
         if (!is_dir($path)) {//nonexistion path
            mkdir($path, 0777, true) ? '' : die('Creation path failed!');
        }
    }

Verwandte Empfehlungen:

Ein paar Zeilen Code zum einfachen Verpacken und Herunterladen von PHP-Dateien in Zip

PHP-Dateisperre sorgt für Multi -Threaded Writing Safe

Das obige ist der detaillierte Inhalt vonKomprimiertes PHP-Dateipaket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn