如何在不使用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