📁 File Manager By @h0rn3t_sp1d3r
📂 Change Directory:
Go
/
/
opt
/
alt
/
php53
/
usr
/
share
/
pear
/
ezc
/
Archive
/
tar
/
headers
/
[ HOME ]
⬅️ [ PARENT DIR ]
📤 Upload
<?php /** * File contains the ezcArchiveGnuHeader class. * * @package Archive * @version 1.4.1 * @copyright Copyright (C) 2005-2010 eZ Systems AS. All rights reserved. * @license http://ez.no/licenses/new_bsd New BSD License * @access private */ /** * The ezcArchiveGnuHeader class represents the Tar Gnu header. * * ezcArchiveGnuHeader can read the header from an ezcArchiveBlockFile or ezcArchiveEntry. * * The values from the headers are directly accessible via the class properties, and allows * reading and writing to specific header values. * * The entire header can be appended to an ezcArchiveBlockFile again or written to an ezcArchiveFileStructure. * Information may get lost, though. * * The header is the {@link ezcArchiveUstarHeader} with the extension that the type can be set to "L" or "K". * Respectively, long filename and long link. If the type is set to either "L" or "K", the next block contains the * filename or link. The block thereafter repeats the original header but the type is then set to a digit. * (No long filename or link). * * @package Archive * @version 1.4.1 * @access private */ class ezcArchiveGnuHeader extends ezcArchiveUstarHeader { /** * Creates and initializes a new header. * * If the ezcArchiveBlockFile $file is null then the header will be empty. * When an ezcArchiveBlockFile is given, the block position should point to the header block. * This header block will be read from the file and initialized in this class. * * @param ezcArchiveBlockFile $file */ public function __construct( ezcArchiveBlockFile $file = null ) { if ( !is_null( $file ) ) { // FIXME Assumed a while.. check the gnu tar source file. // FIXME Check long links, really large files, etc. $extensions = array(); do { parent::__construct( $file ); switch ( $this->type ) { case "L": $extensions["fileName"] = $this->readExtension( $file ); break; case "K": $extensions["linkName"] = $this->readExtension( $file ); break; } } while ( $this->type < '0' || $this->type > '9' ); parent::__construct( $file ); foreach ( $extensions as $key => $value ) { switch ( $key ) { case "fileName": $this->fileName = $extensions["fileName"]; $this->filePrefix = ""; break; case "linkName": $this->linkName = $extensions["linkName"]; break; } } } } /** * Reads an extended set of data from the Block file and returns it as a string. * * Some filenames or link names do not fit in the Ustar header, and are therefor placed in a new block. * This method read the block(s) and returns the data as a string. * * @param ezcArchiveBlockFile $file * @return string */ protected function readExtension( ezcArchiveBlockFile $file ) { $completeBlocks = ( int ) ( $this->fileSize / self::BLOCK_SIZE ); $rest = ( $this->fileSize % self::BLOCK_SIZE ); $data = ""; for ( $i = 0; $i < $completeBlocks; $i++ ) { $data .= $file->next(); } $data .= substr( $file->next(), 0, $rest ); $file->next(); return $data; } } ?>
💾 Save
Name
Size (kB)
Modified
Year
Perms
Actions
📁 ..
-
2024-05-04 23:47:50
2024
Set
-
📄 gnu.php
3.61
2019-12-18 11:15:10
2019
Set
✏️ Edit
|
🗑️
|
⬇️
|
✏️
📄 pax.php
4.41
2019-12-18 11:15:10
2019
Set
✏️ Edit
|
🗑️
|
⬇️
|
✏️
📄 ustar.php
14.48
2019-12-18 11:15:10
2019
Set
✏️ Edit
|
🗑️
|
⬇️
|
✏️
📄 v7.php
14.17
2019-12-18 11:15:10
2019
Set
✏️ Edit
|
🗑️
|
⬇️
|
✏️