Joomla! Programmierung/Framework/JArchive/extract
Aus Joomla! Dokumentation
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
JArchive/extract dient zum Entpacken von Archiven.
[Bearbeiten] Syntax
extract( $archivename, $extractdir )
| Parameter | Datentyp | Beschreibung | Standardwert |
|---|---|---|---|
| $archivename | string | Der Name der Archivdatei | --- |
| $extractdir | string | Der Pfad in welchen das Archiv entpackt werden soll | --- |
[Bearbeiten] Beispiele
[Bearbeiten] Ein Archiv entpacken
Das tar.gz Archiv
im Ordner
soll im Unterordner
entpackt werden.
$dateiPfad = JPATH_COMPONENT.DS.'archiv_ordner'; $dateiName = 'mein_archiv.tar.gz'; if( JArchive::extract($dateiPfad.DS.$dateiName, $dateiPfad.DS.'neues_verzeichnis') ) { //-- Das Archiv wurde erfolgreich entpackt } else { //-- Es trat ein Fehler auf }
[Bearbeiten] Quellcode
{ jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); $untar = false; $result = false; // Check if a tar is embedded...gzip/bzip2 can just be plain files! { $untar = true; } switch ($ext) { case 'zip': if ($adapter) { $result = $adapter->extract($archivename, $extractdir); } break; case 'tar': if ($adapter) { $result = $adapter->extract($archivename, $extractdir); } break; case 'tgz': // This format is a tarball gzip'd $untar = true; case 'gz': case 'gzip': // This may just be an individual file (e.g. sql script) if ($adapter) { $gzresult = $adapter->extract($archivename, $tmpfname); if ($gzresult instanceof Exception) { return false; } if ($untar) { // Try to untar the file if ($tadapter) { $result = $tadapter->extract($tmpfname, $extractdir); } } else { $result = JFile::copy($tmpfname, $path . '/' . JFile::stripExt(JFile::getName(strtolower($archivename))), null, 1); } } break; case 'tbz2': // This format is a tarball bzip2'd $untar = true; case 'bz2': case 'bzip2': // This may just be an individual file (e.g. sql script) if ($adapter) { $bzresult = $adapter->extract($archivename, $tmpfname); if ($bzresult instanceof Exception) { return false; } if ($untar) { // Try to untar the file if ($tadapter) { $result = $tadapter->extract($tmpfname, $extractdir); } } else { $result = JFile::copy($tmpfname, $path . '/' . JFile::stripExt(JFile::getName(strtolower($archivename))), null, 1); } } break; default: return false; break; } if (!$result || $result instanceof Exception) { return false; } return true; }
[Bearbeiten] Siehe auch
- JArchive->extract() auf api.joomla.org