english/libraries/joomla/filesystem/archive/bzip2.php
/**
	* Extract a Bzip2 compressed file to a given path
	*
	* @param   string   $archive      Path to Bzip2 archive to extract
	* @param   string   $destination  Path to extract archive to
	* @param   array    $options      Extraction options [unused]
	*
	* @return  boolean  True if successful
	* @since   11.1
	*/
Extract a Bzip2 compressed file to a given path
@param   string   $archive      Path to Bzip2 archive to extract
@param   string   $destination  Path to extract archive to
@param   array    $options      Extraction options [unused]

@return  boolean  True if successful
@since   11.1
Extract a Bzip2 compressed file to a given path @param string $archive Path to Bzip2 archive to extract @param string $destination Path to extract archive to @param array $options Extraction options [ unused ] @return boolean True if successful @since 11 . 1
public function extract($archive, $destination, $options = array ())
	{
		$this->_data = null;
		if (!extension_loaded('bz2')) {
			$this->set('error.message', JText::_('JLIB_FILESYSTEM_BZIP_NOT_SUPPORTED'));
			return JError::raiseWarning(100, $this->get('error.message'));
		}
		if(!isset($options['use_streams']) || $options['use_streams'] == false)
		{
			if (!$this->_data = JFile::read($archive)) {
				$this->set('error.message', 'Unable to read archive');
				return JError::raiseWarning(100, $this->get('error.message'));
			}
			$buffer = bzdecompress($this->_data);
			unset($this->_data);
			if (empty ($buffer)) {
				$this->set('error.message', 'Unable to decompress data');
				return JError::raiseWarning(100, $this->get('error.message'));
			}
			if (JFile::write($destination, $buffer) === false) {
				$this->set('error.message', 'Unable to write archive');
				return JError::raiseWarning(100, $this->get('error.message'));
			}
		}
		else
		{
			$input = JFactory::getStream();
			$input->set('processingmethod','bz'); 
			if (!$input->open($archive)) {
				$this->set('error.message', JText::_('JLIB_FILESYSTEM_BZIP_UNABLE_TO_READ'));
				return JError::raiseWarning(100, $this->get('error.message'));
			}
			$output = JFactory::getStream();
			if (!$output->open($destination, 'w')) {
				$this->set('error.message', JText::_('JLIB_FILESYSTEM_BZIP_UNABLE_TO_WRITE'));
				$input->close(); 
				return JError::raiseWarning(100, $this->get('error.message'));
			}
			$written = 0;
			do
			{
				$this->_data = $input->read($input->get('chunksize', 8196));
				if ($this->_data) {
					if (!$output->write($this->_data)) {
						$this->set('error.message', JText::_('JLIB_FILESYSTEM_BZIP_UNABLE_TO_WRITE_FILE'));
						return JError::raiseWarning(100, $this->get('error.message'));
					}
				}
			}
			while ($this->_data);
			$output->close();
			$input->close();
		}
		return true;
	}
public function extract ( $ archive , $ destination , $ options = array ( ) ) { $ this -> _data = null ; if ( ! extension_loaded ( 'bz2' ) ) { $ this -> set ( 'error.message' , JText :: _ ( 'JLIB_FILESYSTEM_BZIP_NOT_SUPPORTED' ) ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } if ( ! isset ( $ options [ 'use_streams' ] ) || $ options [ 'use_streams' ] == false ) { if ( ! $ this -> _data = JFile :: read ( $ archive ) ) { $ this -> set ( 'error.message' , 'Unable to read archive' ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } $ buffer = bzdecompress ( $ this -> _data ) ; unset ( $ this -> _data ) ; if ( empty ( $ buffer ) ) { $ this -> set ( 'error.message' , 'Unable to decompress data' ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } if ( JFile :: write ( $ destination , $ buffer ) === false ) { $ this -> set ( 'error.message' , 'Unable to write archive' ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } } else { $ input = JFactory :: getStream ( ) ; $ input -> set ( 'processingmethod' , 'bz' ) ; if ( ! $ input -> open ( $ archive ) ) { $ this -> set ( 'error.message' , JText :: _ ( 'JLIB_FILESYSTEM_BZIP_UNABLE_TO_READ' ) ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } $ output = JFactory :: getStream ( ) ; if ( ! $ output -> open ( $ destination , 'w' ) ) { $ this -> set ( 'error.message' , JText :: _ ( 'JLIB_FILESYSTEM_BZIP_UNABLE_TO_WRITE' ) ) ; $ input -> close ( ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } $ written = 0 ; do { $ this -> _data = $ input -> read ( $ input -> get ( 'chunksize' , 8196 ) ) ; if ( $ this -> _data ) { if ( ! $ output -> write ( $ this -> _data ) ) { $ this -> set ( 'error.message' , JText :: _ ( 'JLIB_FILESYSTEM_BZIP_UNABLE_TO_WRITE_FILE' ) ) ; return JError :: raiseWarning ( 100 , $ this -> get ( 'error.message' ) ) ; } } } while ( $ this -> _data ) ; $ output -> close ( ) ; $ input -> close ( ) ; } return true ; }
Extract a Bzip2 compressed file to a given path
 @param   string   $archive      Path to Bzip2 archive to extract
 @param   string   $destination  Path to extract archive to
 @param   array    $options      Extraction options [unused]
Extract a Bzip2 compressed file to a given path @param string $archive Path to Bzip2 archive to extract @param string $destination Path to extract archive to @param array $options Extraction options [ unused ]
// Initialise variables. // Old style: read the whole file and then parse it // New style! streams! // use bzip // close the previous file