aboutsummaryrefslogtreecommitdiffstats
path: root/mod/parse_url.php
diff options
context:
space:
mode:
authorroot <root@diekershoff.homeunix.net>2010-12-21 07:14:58 +0100
committerroot <root@diekershoff.homeunix.net>2010-12-21 07:14:58 +0100
commit8cfa93b730f87edf98c52e9a38cfa015ce1f5d47 (patch)
treeda79ea09482cf8984c7d9e02076dd2e4f0e8e65e /mod/parse_url.php
parentad32d85cfaa775efbd89b273bd51c82f4e45baab (diff)
parentddec422de6707809aceb541e1191073b43aec18a (diff)
downloadvolse-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.php48
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;
+ }
}
}