Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function Archive_Tar::_extractInString

This method extract from the archive one file identified by $p_filename. The return value is a string with the file content, or null on error.

Parameters

string $p_filename The path of the file to extract in a string.:

Return value

a string with the file content or null.

1 call to Archive_Tar::_extractInString()
Archive_Tar::extractInString in modules/system/system.tar.inc
This method extract from the archive one file identified by $p_filename. The return value is a string with the file content, or NULL on error.

File

modules/system/system.tar.inc, line 1927

Class

Archive_Tar
Creates a (compressed) Tar archive

Code

private function _extractInString($p_filename) {
 $v_result_str = "";
 while (strlen ($v_binary_data = $this->_readBlock ()) != 0) {
 if (!$this->_readHeader ($v_binary_data, $v_header)) {
 return null;
 }
 if ($v_header['filename'] == '') {
 continue;
 }
 switch ($v_header['typeflag']) {
 case 'L':
 {
 if (!$this->_readLongHeader ($v_header)) {
 return null;
 }
 }
 break;
 case 'K':
 {
 $v_link_header = $v_header;
 if (!$this->_readLongHeader ($v_link_header)) {
 return null;
 }
 $v_header['link'] = $v_link_header['filename'];
 }
 break;
 }
 if ($v_header['filename'] == $p_filename) {
 if ($v_header['typeflag'] == "5") {
 $this->_error ('Unable to extract in string a directory ' . 'entry {' . $v_header['filename'] . '}');
 return null;
 }
 else {
 $n = floor ($v_header['size'] / 512);
 for ($i = 0; $i < $n; $i++) {
 $v_result_str .= $this->_readBlock ();
 }
 if ($v_header['size'] % 512 != 0) {
 $v_content = $this->_readBlock ();
 $v_result_str .= substr ($v_content, 0, $v_header['size'] % 512);
 }
 return $v_result_str;
 }
 }
 else {
 $this->_jumpBlock (ceil ($v_header['size'] / 512));
 }
 }
 return null;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.