]> git.mxchange.org Git - friendica.git/blob - mod/parse_url.php
Merge branch 'master' of git://github.com/friendika/friendika
[friendica.git] / mod / parse_url.php
1 <?php
2
3 require_once('library/HTML5/Parser.php');
4
5
6 function parse_url_content(&$a) {
7
8         $url = trim($_GET['url']);
9
10         $text = null;
11
12         $template = "<a href=\"%s\" >%s</a>%s";
13
14         if($url) 
15                 $s = fetch_url($url);
16         else {
17                 echo '';
18                 killme();
19         }
20
21         if(! $s) {
22                 echo sprintf($template,$url,$url,'');
23                 killme();
24         }
25
26         $dom = @HTML5_Parser::parse($s);
27
28         if(! $dom)
29                 return $ret;
30
31         $items = $dom->getElementsByTagName('title');
32
33         if($items) {
34                 foreach($items as $item) {
35                         $title = trim($item->textContent);
36                         break;
37                 }
38         }
39
40
41         $divs = $dom->getElementsByTagName('div');
42         if($divs) {
43                 foreach($divs as $div) {
44                         $class = $div->getAttribute('class');
45                         if($class && stristr($class,'article')) {
46                                 $items = $div->getElementsByTagName('p');
47                                 if($items) {
48                                         foreach($items as $item) {
49                                                 $text = $item->textContent;
50                                                 $text = strip_tags($text);
51                                                 if(strlen($text) < 100)
52                                                         continue;
53                                                 $text = substr($text,0,250) . '...' ;
54                                                 break;
55                                         }
56                                 }
57                         }
58                 }
59         }
60
61         if(! $text) {
62                 $items = $dom->getElementsByTagName('p');
63                 if($items) {
64                         foreach($items as $item) {
65                                 $text = $item->textContent;
66                                 $text = strip_tags($text);
67                                 if(strlen($text) < 100)
68                                         continue;
69                                 $text = substr($text,0,250) . '...' ;
70                                 break;
71                         }
72                 }
73         }
74
75         if(strlen($text)) {
76                 $text = '<br />' . $text;
77         }
78
79         echo sprintf($template,$url,$title,$text);
80         killme();
81 }