1<?php 2 3namespace MaxMind\Db\Reader; 4 5class Util 6{ 7 public static function read($stream, $offset, $numberOfBytes) 8 { 9 if ($numberOfBytes === 0) { 10 return ''; 11 } 12 if (fseek($stream, $offset) === 0) { 13 $value = fread($stream, $numberOfBytes); 14 15 // We check that the number of bytes read is equal to the number 16 // asked for. We use ftell as getting the length of $value is 17 // much slower. 18 if (ftell($stream) - $offset === $numberOfBytes) { 19 return $value; 20 } 21 } 22 throw new InvalidDatabaseException( 23 'The MaxMind DB file contains bad data' 24 ); 25 } 26} 27