Completed
Push — add/gdpr-ads-compliance ( 47ea51...6d1e7f )
by
unknown
09:08
created

Util   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 10
c 0
b 0
f 0
wmc 4
lcom 0
cbo 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A read() 0 19 4
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