純粋なPHPを使用して、exec('tar')
または他のコマンドを使用せずに、phpでファイルをuntar-gzするにはどうすればよいですか?
私の問題は次のとおりです。 26mbのtar.gzファイルがあり、サーバーにアップロードして抽出する必要があります。 net2ftpを使用して抽出しようとしましたが、アップロード後のtar.gzの解凍はサポートされていません。
私は無料のWebホストを使用しているため、exec()
コマンドを許可しておらず、プロンプトへのアクセスも許可していません。それで、これを解凍する方法は?
PHPには組み込みコマンドがありますか?
PHP 5.3.0なので、_Archive_Tar
_を使用する必要はありません。
Tarアーカイブで動作する新しいクラス The PharDataクラス があります。
アーカイブを抽出するには( 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拡張機能がそれぞれ読み込まれている必要があります。