diff options
-rw-r--r-- | mod/parse_url.php | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/mod/parse_url.php b/mod/parse_url.php index 15a6aced0..ec28d7411 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -1,6 +1,7 @@ <?php require_once('library/HTML5/Parser.php'); +require_once('library/HTMLPurifier.auto.php'); function parse_url_content(&$a) { @@ -31,16 +32,25 @@ function parse_url_content(&$a) { killme(); } + logger('parse_url: data: ' . $s, LOGGER_DATA); if(! $s) { echo sprintf($template,$url,$url,''); killme(); } + $config = HTMLPurifier_Config::createDefault(); + $config->set('Cache.DefinitionImpl', null); + + $purifier = new HTMLPurifier($config); + $s = $purifier->purify($s); + $dom = @HTML5_Parser::parse($s); - if(! $dom) - return $ret; + if(! $dom) { + echo sprintf($template,$url,$url,''); + killme(); + } $items = $dom->getElementsByTagName('title'); @@ -51,7 +61,6 @@ function parse_url_content(&$a) { } } - $divs = $dom->getElementsByTagName('div'); if($divs) { foreach($divs as $div) { @@ -94,6 +103,6 @@ function parse_url_content(&$a) { $text = '<br />' . $text; } - echo sprintf($template,$url,$title,$text); + echo sprintf($template,$url,($title) ? $title : $url,$text); killme(); } |