/
opt
/
alt
/
php55
/
usr
/
share
/
pear
/
ezc
/
Archive
/
tar
/
headers
/
/opt/alt/php55/usr/share/pear/ezc/Archive/tar/headers
mkdir
upload
Name
Size
Mode
Actions
gnu.php
3694
0644
edit
dl
rm
pax.php
4512
0644
edit
dl
rm
ustar.php
14828
0644
edit
dl
rm
v7.php
14506
0644
edit
dl
rm
Edit:
/opt/alt/php55/usr/share/pear/ezc/Archive/tar/headers/pax.php
(4512B)
<?php /** * File contains the ezcArchivePaxHeader 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 ezcArchivePaxHeader class represents the Tar Pax header. * * ezcArchivePaxHeader 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 extra header information described on the following webpage: * {@link http://www.opengroup.org/onlinepubs/009695399/utilities/pax.html} * * Currently, only the extended header is supported. * * @package Archive * @version 1.4.1 * @access private */ class ezcArchivePaxHeader extends ezcArchiveUstarHeader { /** * Sets the property $name to $value. * * @throws ezcBasePropertyNotFoundException if the property does not exist. * @param string $name * @param mixed $value * @return void * @ignore */ public function __set( $name, $value ) { return parent::__set( $name, $value ); } /** * Returns the value of the property $name. * * @throws ezcBasePropertyNotFoundException if the property does not exist. * @param string $name * @return mixed * @ignore */ public function __get( $name ) { return parent::__get( $name ); } /** * Returns an array with pax header information. * * This method reads an extended set of data from the ezcArchiveBlockFile * $file and returns the values in an array. * * @param ezcArchiveBlockFile $file * @return array(string=>string) */ protected function getPaxDecodedHeader( ezcArchiveBlockFile $file ) { $result = array(); // next block has the info. $file->next(); $data = $file->current(); $offset = 0; while ( strcmp( $data[$offset], "\0" ) != 0 ) { $space = strpos( $data, " ", $offset ); $length = substr( $data, $offset, $space - $offset ); $equalSign = strpos( $data, "=", $space ); $keyword = substr( $data, $space + 1, $equalSign - $space - 1 ); $value = rtrim( substr( $data, $equalSign + 1, $length - $equalSign - 1 ), "\n" ); $result[ $keyword ] = $value; $offset += $length; } return $result; } /** * 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 ) ) { parent::__construct( $file ); if ( $this->type == "x" ) { $paxArray = $this->getPaxDecodedHeader( $file ); $file->next(); } parent::__construct( $file ); // Override some fields. foreach ( $paxArray as $key => $value ) { switch ( $key ) { case "gid": $this->groupId = $value; break; // For group IDs larger than 2097151. case "linkpath": $this->linkName = $value; break; // Long link names? case "path": $this->fileName = $value; $this->filePrefix = ""; break; // Really long file names. case "size": $this->size = $value; break; // For files with a size greater than 8589934591 bytes. case "uid": $this->userId = $value; break; // For user IDs larger than 2097151. } } } } } ?>
Save
cmd:
run