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: