Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  
   3  /**
   4   * This variable parser uses PHP's internal code engine. Because it does
   5   * this, it can represent all inputs; however, it is dangerous and cannot
   6   * be used by users.
   7   */
   8  class HTMLPurifier_VarParser_Native extends HTMLPurifier_VarParser
   9  {
  10  
  11      /**
  12       * @param mixed $var
  13       * @param int $type
  14       * @param bool $allow_null
  15       * @return null|string
  16       */
  17      protected function parseImplementation($var, $type, $allow_null)
  18      {
  19          return $this->evalExpression($var);
  20      }
  21  
  22      /**
  23       * @param string $expr
  24       * @return mixed
  25       * @throws HTMLPurifier_VarParserException
  26       */
  27      protected function evalExpression($expr)
  28      {
  29          $var = null;
  30          $result = eval("\$var = $expr;");
  31          if ($result === false) {
  32              throw new HTMLPurifier_VarParserException("Fatal error in evaluated code");
  33          }
  34          return $var;
  35      }
  36  }
  37  
  38  // vim: et sw=4 sts=4