private function ArchiveTar::_extractInString in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Archiver/ArchiveTar.php \Drupal\Core\Archiver\ArchiveTar::_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 ArchiveTar::_extractInString()
- ArchiveTar::extractInString in core/
lib/ Drupal/ Core/ Archiver/ ArchiveTar.php - 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
- core/
lib/ Drupal/ Core/ Archiver/ ArchiveTar.php, line 1860
Class
Namespace
Drupal\Core\ArchiverCode
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;
}