On this page
private function Archive_Tar::_extractInString
private Archive_Tar::_extractInString($p_filename)
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.
File
- modules/system/system.tar.inc, line 1863
Class
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;
}
// ----- Look for long filename
if ($v_header['typeflag'] == 'L') {
if (!$this->_readLongHeader($v_header)) {
return null;
}
}
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;
}
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!system!system.tar.inc/function/Archive_Tar::_extractInString/7.x