1: <?php
 2: 
 3: namespace MaxMind\Db\Reader;
 4: 
 5: class 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: