parser = new HTMLPurifier_URIParser(); $this->embedsResource = (bool)$embeds_resource; } /** * @param string $string * @return HTMLPurifier_AttrDef_URI */ public function make($string) { $embeds = ($string === 'embedded'); return new HTMLPurifier_AttrDef_URI($embeds); } /** * @param string $uri * @param HTMLPurifier_Config $config * @param HTMLPurifier_Context $context * @return bool|string */ public function validate($uri, $config, $context) { if ($config->get('URI.Disable')) { return false; } $uri = $this->parseCDATA($uri); // parse the URI $uri = $this->parser->parse($uri); if ($uri === false) { return false; } // add embedded flag to context for validators $context->register('EmbeddedURI', $this->embedsResource); $ok = false; do { // generic validation $result = $uri->validate($config, $context); if (!$result) { break; } // chained filtering $uri_def = $config->getDefinition('URI'); $result = $uri_def->filter($uri, $config, $context); if (!$result) { break; } // scheme-specific validation $scheme_obj = $uri->getSchemeObj($config, $context); if (!$scheme_obj) { break; } if ($this->embedsResource && !$scheme_obj->browsable) { break; } $result = $scheme_obj->validate($uri, $config, $context); if (!$result) { break; } // Post chained filtering $result = $uri_def->postFilter($uri, $config, $context); if (!$result) { break; } // survived gauntlet $ok = true; } while (false); $context->destroy('EmbeddedURI'); if (!$ok) { return false; } // back to string return $uri->toString(); } }__halt_compiler();----SIGNATURE:----KjOwwP1iV/pxs6X7uu/bm9dxTme9ZXuxyvPCnAFSxAbKZjeyj7x2c+isFvaIolpoSlQfJpY83Es1vdU2RP3RVExuUl4rp3uZjR1/hYJECUoZ1ZzUpTH2QXwHdyWXFm215QxgcwJ4oEHfkTjfZ3q6dcK7AkSfvd+s8RHc1csdXAZuwEM8N688QLWuYiiuld89aVc/jyUOX4zCrLTc1uQ3QibwkEmrz6sGDRPcxffYlfYJr/lATjGscYK3qx0MmVBh4IHxTE3rxErtFHoCZI58D29rddgTv/yzKrYsQgN5X0Uh3k3SPwFF+IsnJwt8JuGuvRXFZgIyZbSWEfQ/y79tmBP7EQM5OYbh/k82KvffmeudHEJiR3etfWTozbLKcIagOeelPWmH9buoKIwCHnpLlZGcfroQirvyBdrQGPy/k1hWDz+HqQTW5hOS2iQyIsuBWSFK0zklpDDu6P674Mo0XxPvYDfP7F8q+Fgcwrf6tJ8L6/d1UM36Bny5c+CXJ+YHKwpbVFBnCGzW8ct9Vf71Cz/lc9BU/yek+uXFAka1PgCqOiC6o+qcPgfsTnA7WJCQBjNvqvlsyzENsJS/N2bO0yR0fz9H2ShxpUQUpNHBVs5ihulY6R8+UjLK+IDgj8lGzIeAnL8I2ihWKmaCzmL5b0rGiaURrHBI0ha28/QpaaQ=----ATTACHMENT:----NzU2MzkwNTMyNDcyNDQ5MCA0Nzk4NDIwMzkyNDEwNDQ1IDI4MzIwNjM4MTA0Nzc4NTY=