]> git.mxchange.org Git - friendica.git/blobdiff - mod/parse_url.php
OpenID delegation in profile page
[friendica.git] / mod / parse_url.php
index aa71893ab47ebade0e5043976157f57d174daf59..1561eb8a3ba143d1cf992845b092d7e14d20ea88 100644 (file)
@@ -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;
+                       }
                }
        }