Browse Source

purify html before trying to parse wild urls. This way at least it should parse.

pull/1/head
Friendika 9 years ago
parent
commit
24d41e2c6e
1 changed files with 13 additions and 4 deletions
  1. +13
    -4
      mod/parse_url.php

+ 13
- 4
mod/parse_url.php View File

@ -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();
}

Loading…
Cancel
Save