如何在不使用exec('tar')
或任何其他命令的情况下使用纯PHP解压php文件?没有exec()的PHP Untar-gz?
我的问题如下;我有一个26mb tar.gz文件,需要上传到我的服务器并解压。我曾尝试使用net2ftp来解压缩它,但上传后不支持tar.gz解压缩。
我正在使用免费的虚拟主机,因此它们不允许任何exec()
命令,并且它们不允许访问提示。那么我怎么去解决这个问题呢?
PHP有内置命令吗?
如何在不使用exec('tar')
或任何其他命令的情况下使用纯PHP解压php文件?没有exec()的PHP Untar-gz?
我的问题如下;我有一个26mb tar.gz文件,需要上传到我的服务器并解压。我曾尝试使用net2ftp来解压缩它,但上传后不支持tar.gz解压缩。
我正在使用免费的虚拟主机,因此它们不允许任何exec()
命令,并且它们不允许访问提示。那么我怎么去解决这个问题呢?
PHP有内置命令吗?
由于PHP 5.3.0,你不需要使用Archive_Tar
。
在tar档案上有新的课程:The PharData class。
要提取的存档(使用PharData::extractTo()
它的工作方式类似于ZipArchive::extractTo()
):
try {
$phar = new PharData('myphar.tar');
$phar->extractTo('/full/path'); // extract all files
} catch (Exception $e) {
// handle errors
}
如果你有一个tar.gz压缩,只是提取物之前(使用PharData::decompress()
)解压:
// decompress from gz
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
// unarchive from the tar
$phar = new PharData('/path/to/my.tar');
$phar->extractTo('/full/path');
PEAR提供了Archive_Tar
class,它支持Gzip和BZ2压缩,前提是您分别加载了zlib和bz2扩展。
由于某些原因,PharData :: extractTo在Windows的PHP 5.4.0中无法使用。不知道为什么 – TinyGrasshopper 2012-12-14 03:12:18
我看到[你的问题](http://stackoverflow.com/q/13870800/569101),但我没有5.4.0的Windows来测试它,对不起。 – j0k 2012-12-14 08:24:15
与文献相反,它似乎并不把目录作为第二个参数。 – 2013-06-10 01:58:37