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 /* $Id: TarArchive.class.php 4687 2007-12-09 18:57:18Z voxus $ */ 00012 00018 final class TarArchive extends FileArchive 00019 { 00020 public function __construct($cmdBinPath = '/bin/tar') 00021 { 00022 if ($cmdBinPath === null) 00023 throw 00024 new UnimplementedFeatureException( 00025 'no built-in support for GNU Tar' 00026 ); 00027 00028 parent::__construct($cmdBinPath); 00029 } 00030 00031 public function readFile($fileName) 00032 { 00033 if (!$this->sourceFile) 00034 throw 00035 new WrongStateException( 00036 'dude, open an archive first.' 00037 ); 00038 00039 $options = '--extract --to-stdout' 00040 .' --file '.escapeshellarg($this->sourceFile) 00041 .' '.escapeshellarg($fileName); 00042 00043 return $this->execStdoutOptions($options); 00044 } 00045 } 00046 ?>