Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace MaxMind\Db\Reader;
6
 
7
class Util
8
{
9
    /**
10
     * @param resource $stream
11
     */
12
    public static function read($stream, int $offset, int $numberOfBytes): string
13
    {
14
        if ($numberOfBytes === 0) {
15
            return '';
16
        }
17
        if (fseek($stream, $offset) === 0) {
18
            $value = fread($stream, $numberOfBytes);
19
 
20
            // We check that the number of bytes read is equal to the number
21
            // asked for. We use ftell as getting the length of $value is
22
            // much slower.
23
            if ($value !== false && ftell($stream) - $offset === $numberOfBytes) {
24
                return $value;
25
            }
26
        }
27
 
28
        throw new InvalidDatabaseException(
29
            'The MaxMind DB file contains bad data'
30
        );
31
    }
32
}