diff options
author | root <root@diekershoff.homeunix.net> | 2010-12-21 07:14:58 +0100 |
---|---|---|
committer | root <root@diekershoff.homeunix.net> | 2010-12-21 07:14:58 +0100 |
commit | 8cfa93b730f87edf98c52e9a38cfa015ce1f5d47 (patch) | |
tree | da79ea09482cf8984c7d9e02076dd2e4f0e8e65e /mod/parse_url.php | |
parent | ad32d85cfaa775efbd89b273bd51c82f4e45baab (diff) | |
parent | ddec422de6707809aceb541e1191073b43aec18a (diff) | |
download | volse-hubzilla-8cfa93b730f87edf98c52e9a38cfa015ce1f5d47.tar.gz volse-hubzilla-8cfa93b730f87edf98c52e9a38cfa015ce1f5d47.tar.bz2 volse-hubzilla-8cfa93b730f87edf98c52e9a38cfa015ce1f5d47.zip |
Merge branch 'master' of git://github.com/friendika/friendika
Diffstat (limited to 'mod/parse_url.php')
-rw-r--r-- | mod/parse_url.php | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/mod/parse_url.php b/mod/parse_url.php index aa71893ab..1561eb8a3 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -2,10 +2,13 @@ require_once('library/HTML5/Parser.php'); + function parse_url_content(&$a) { $url = trim($_GET['url']); + $text = null; + $template = "<a href=\"%s\" >%s</a>%s"; if($url) @@ -14,13 +17,13 @@ function parse_url_content(&$a) { echo ''; killme(); } - + if(! $s) { echo sprintf($template,$url,$url,''); killme(); } - $dom = HTML5_Parser::parse($s); + $dom = @HTML5_Parser::parse($s); if(! $dom) return $ret; @@ -34,15 +37,38 @@ function parse_url_content(&$a) { } } - $items = $dom->getElementsByTagName('p'); - if($items) { - foreach($items as $item) { - $text = $item->textContent; - $text = strip_tags($text); - if(strlen($text) < 100) - continue; - $text = substr($text,0,250) . '...' ; - break; + + $divs = $dom->getElementsByTagName('div'); + if($divs) { + foreach($divs as $div) { + $class = $div->getAttribute('class'); + if($class && stristr($class,'article')) { + $items = $div->getElementsByTagName('p'); + if($items) { + foreach($items as $item) { + $text = $item->textContent; + $text = strip_tags($text); + if(strlen($text) < 100) + continue; + $text = substr($text,0,250) . '...' ; + break; + } + } + } + } + } + + if(! $text) { + $items = $dom->getElementsByTagName('p'); + if($items) { + foreach($items as $item) { + $text = $item->textContent; + $text = strip_tags($text); + if(strlen($text) < 100) + continue; + $text = substr($text,0,250) . '...' ; + break; + } } } |