friendica/vendor/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php

39 lines
910 B
PHP
Raw Normal View History

2010-09-08 23:14:17 -04:00
<?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
{
2016-02-09 05:06:17 -05:00
/**
* @param mixed $var
* @param int $type
* @param bool $allow_null
* @return null|string
*/
protected function parseImplementation($var, $type, $allow_null)
{
2010-09-08 23:14:17 -04:00
return $this->evalExpression($var);
}
2016-02-09 05:06:17 -05:00
/**
* @param string $expr
* @return mixed
* @throws HTMLPurifier_VarParserException
*/
protected function evalExpression($expr)
{
2010-09-08 23:14:17 -04:00
$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