PharData::convertToData
(PHP >= 5.3.0, PECL phar >= 2.0.0)
PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
Описание
PharData PharData::convertToData
([ int $format
[, int $compression
[, string $extension
]]] )
If no changes are specified, this method throws a BadMethodCallException.
This method should be used to convert a tar archive to zip format or vice-versa. Although
it is possible to simply change the compression of a tar archive using this method,
it is better to use the PharData::compress() method for logical
consistency.
If successful, the method creates a new archive on disk and returns a PharData
object. The old archive is not removed from disk, and should be done manually after
the process has finished.
Список параметров
-
format
-
This should be one of Phar::TAR
or Phar::ZIP. If set to NULL, the existing file format
will be preserved.
-
compression
-
This should be one of Phar::NONE for no whole-archive
compression, Phar::GZ for zlib-based compression, and
Phar::BZ2 for bzip-based compression.
-
extension
-
This parameter is used to override the default file extension for a
converted archive. Note that .phar cannot be used
anywhere in the filename for a non-executable tar or zip archive.
If converting to a tar-based phar archive, the
default extensions are .tar, .tar.gz,
and .tar.bz2 depending on specified compression.
For zip-based archives, the
default extension is .zip.
Возвращаемые значения
The method returns a PharData object on success and throws an
exception on failure.
Примеры
Пример #1 A PharData::convertToData() example
Using PharData::convertToData():
<?php
try {
$tarphar = new PharData('myphar.tar');
// note that myphar.tar is *not* unlinked
// convert it to the non-executable tar file format
// creates myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// create myphar.tbz
$tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// creates myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
// handle the error here
}
?>