Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Tar.php

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 vendor/pear/archive_tar/Archive/Tar.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

vendor/pear/archive_tar/Archive/Tar.php, line 1864

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal