private function _readPropertySets() {
		$offset = 0;

		// loop through entires, each entry is 128 bytes
		$entryLen = strlen($this->entry);
		while ($offset < $entryLen) {
			// entry data (128 bytes)
			$d = substr($this->entry, $offset, self::PROPERTY_STORAGE_BLOCK_SIZE);

			// size in bytes of name
			$nameSize = ord($d[self::SIZE_OF_NAME_POS]) | (ord($d[self::SIZE_OF_NAME_POS+1]) << 8);

			// type of entry
			$type = ord($d[self::TYPE_POS]);

			// sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook)
			// sectorID of first sector of the short-stream container stream, if this entry is root entry
			$startBlock = self::_GetInt4d($d, self::START_BLOCK_POS);

			$size = self::_GetInt4d($d, self::SIZE_POS);

			$name = str_replace("\x00", "", substr($d,0,$nameSize));


			$this->props[] = array (
				'name' => $name,
				'type' => $type,
				'startBlock' => $startBlock,
				'size' => $size);

			// tmp helper to simplify checks
			$upName = strtoupper($name);

			// Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook)
			if (($upName === 'WORKBOOK') || ($upName === 'BOOK')) {
				$this->wrkbook = count($this->props) - 1;
			}
			else if ( $upName === 'ROOT ENTRY' || $upName === 'R') {
				// Root entry
				$this->rootentry = count($this->props) - 1;
			}

			// Summary information
			if ($name == chr(5) . 'SummaryInformation') {
//				echo 'Summary Information<br />';
				$this->summaryInformation = count($this->props) - 1;
			}

			// Additional Document Summary information
			if ($name == chr(5) . 'DocumentSummaryInformation') {
//				echo 'Document Summary Information<br />';
				$this->documentSummaryInformation = count($this->props) - 1;
			}

			$offset += self::PROPERTY_STORAGE_BLOCK_SIZE;
		}

	}
private function _readPropertySets() {
		$offset = 0;

		// loop through entires, each entry is 128 bytes
		$entryLen = strlen($this->entry);
		while ($offset < $entryLen) {
			// entry data (128 bytes)
			$d = substr($this->entry, $offset, self::PROPERTY_STORAGE_BLOCK_SIZE);

			// size in bytes of name
			$nameSize = ord($d[self::SIZE_OF_NAME_POS]) | (ord($d[self::SIZE_OF_NAME_POS+1]) << 8);

			// type of entry
			$type = ord($d[self::TYPE_POS]);

			// sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook)
			// sectorID of first sector of the short-stream container stream, if this entry is root entry
			$startBlock = self::_GetInt4d($d, self::START_BLOCK_POS);

			$size = self::_GetInt4d($d, self::SIZE_POS);

			$name = str_replace("\x00", "", substr($d,0,$nameSize));


			$this->props[] = array (
				'name' => $name,
				'type' => $type,
				'startBlock' => $startBlock,
				'size' => $size);

			// tmp helper to simplify checks
			$upName = strtoupper($name);

			// Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook)
			if (($upName === 'WORKBOOK') || ($upName === 'BOOK')) {
				$this->wrkbook = count($this->props) - 1;
			}
			else if ( $upName === 'ROOT ENTRY' || $upName === 'R') {
				// Root entry
				$this->rootentry = count($this->props) - 1;
			}

			// Summary information
			if ($name == chr(5) . 'SummaryInformation') {
//				echo 'Summary Information<br />';
				$this->summaryInformation = count($this->props) - 1;
			}

			// Additional Document Summary information
			if ($name == chr(5) . 'DocumentSummaryInformation') {
//				echo 'Document Summary Information<br />';
				$this->documentSummaryInformation = count($this->props) - 1;
			}

			$offset += self::PROPERTY_STORAGE_BLOCK_SIZE;
		}

	}
private function _readPropertySets ( ) { $ offset = 0 ; // loop through entires, each entry is 128 bytes $ entryLen = strlen ( $ this -> entry ) ; while ( $ offset < $ entryLen ) { // entry data (128 bytes) $ d = substr ( $ this -> entry , $ offset , self :: PROPERTY_STORAGE_BLOCK_SIZE ) ; // size in bytes of name $ nameSize = ord ( $ d [ self :: SIZE_OF_NAME_POS ] ) | ( ord ( $ d [ self :: SIZE_OF_NAME_POS + 1 ] ) << 8 ) ; // type of entry $ type = ord ( $ d [ self :: TYPE_POS ] ) ; // sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook) // sectorID of first sector of the short-stream container stream, if this entry is root entry $ startBlock = self :: _GetInt4d ( $ d , self :: START_BLOCK_POS ) ; $ size = self :: _GetInt4d ( $ d , self :: SIZE_POS ) ; $ name = str_replace ( "\x00" , "" , substr ( $ d , 0 , $ nameSize ) ) ; $ this -> props [ ] = array ( 'name' => $ name , 'type' => $ type , 'startBlock' => $ startBlock , 'size' => $ size ) ; // tmp helper to simplify checks $ upName = strtoupper ( $ name ) ; // Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook) if ( ( $ upName === 'WORKBOOK' ) || ( $ upName === 'BOOK' ) ) { $ this -> wrkbook = count ( $ this -> props ) - 1 ; } else if ( $ upName === 'ROOT ENTRY' || $ upName === 'R' ) { // Root entry $ this -> rootentry = count ( $ this -> props ) - 1 ; } // Summary information if ( $ name == chr ( 5 ) . 'SummaryInformation' ) { //				echo 'Summary Information<br />'; $ this -> summaryInformation = count ( $ this -> props ) - 1 ; } // Additional Document Summary information if ( $ name == chr ( 5 ) . 'DocumentSummaryInformation' ) { //				echo 'Document Summary Information<br />'; $ this -> documentSummaryInformation = count ( $ this -> props ) - 1 ; } $ offset += self :: PROPERTY_STORAGE_BLOCK_SIZE ; } }
Read entries in the directory stream.
Read entries in the directory stream .