00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2007 by Ivan Y. Khvostishkov * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Lesser General Public License as * 00007 * published by the Free Software Foundation; either version 3 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 ***************************************************************************/ 00011 00019 final class TarArchive extends FileArchive 00020 { 00021 public function __construct($cmdBinPath = '/bin/tar') 00022 { 00023 if ($cmdBinPath === null) 00024 throw 00025 new UnimplementedFeatureException( 00026 'no built-in support for GNU Tar' 00027 ); 00028 00029 parent::__construct($cmdBinPath); 00030 } 00031 00032 public function readFile($fileName) 00033 { 00034 if (!$this->sourceFile) 00035 throw 00036 new WrongStateException( 00037 'dude, open an archive first.' 00038 ); 00039 00040 $options = '--extract --to-stdout' 00041 .' --file '.escapeshellarg($this->sourceFile) 00042 .' '.escapeshellarg($fileName); 00043 00044 return $this->execStdoutOptions($options); 00045 } 00046 } 00047 ?>