Files
moodle/lib/maxmind/MaxMind/Db/Reader/Util.php
T
Dan Poltawski eacc36a26b MDL-48766 lib: Import MaxMind GeoIP2 PHP API
No changes from the upstream version have been made, it is recommended by
upstream to install these depdencies via composer - but the composer
installation is bundled with a load of test files, shell scripts etc (and
we don't use composer to manage 'production dependencies') so we have to
do it manually.
2016-09-19 08:59:38 +01:00

29 lines
749 B
PHP

<?php
namespace MaxMind\Db\Reader;
use MaxMind\Db\Reader\InvalidDatabaseException;
class Util
{
public static function read($stream, $offset, $numberOfBytes)
{
if ($numberOfBytes == 0) {
return '';
}
if (fseek($stream, $offset) == 0) {
$value = fread($stream, $numberOfBytes);
// We check that the number of bytes read is equal to the number
// asked for. We use ftell as getting the length of $value is
// much slower.
if (ftell($stream) - $offset === $numberOfBytes) {
return $value;
}
}
throw new InvalidDatabaseException(
"The MaxMind DB file contains bad data"
);
}
}