Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.

Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]

   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          throw new InvalidDatabaseException(
  28              'The MaxMind DB file contains bad data'
  29          );
  30      }
  31  }