diff options
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php')
-rw-r--r-- | lib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php b/lib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php new file mode 100644 index 000000000..b02a6de54 --- /dev/null +++ b/lib/htmlpurifier/library/HTMLPurifier/VarParser/Native.php @@ -0,0 +1,26 @@ +<?php + +/** + * This variable parser uses PHP's internal code engine. Because it does + * this, it can represent all inputs; however, it is dangerous and cannot + * be used by users. + */ +class HTMLPurifier_VarParser_Native extends HTMLPurifier_VarParser +{ + + protected function parseImplementation($var, $type, $allow_null) { + return $this->evalExpression($var); + } + + protected function evalExpression($expr) { + $var = null; + $result = eval("\$var = $expr;"); + if ($result === false) { + throw new HTMLPurifier_VarParserException("Fatal error in evaluated code"); + } + return $var; + } + +} + +// vim: et sw=4 sts=4 |