X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2FScrape.php;h=10ec54d1347aa968ec35c3d9b1b9185ca61976dc;hb=c5cf9de32a247bbb1757b1f8e30ab3483544fa31;hp=0272dde129cd89c83d918ac2f9d6cbd5c3ceb86b;hpb=b8b227b32882fb511c8481a41c53637e7ce7707a;p=friendica.git diff --git a/include/Scrape.php b/include/Scrape.php index 0272dde129..10ec54d134 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -2,15 +2,6 @@ require_once('library/HTML5/Parser.php'); -if(! function_exists('attribute_contains')) { -function attribute_contains($attr,$s) { - $a = explode(' ', $attr); - if(count($a) && in_array($s,$a)) - return true; - return false; -}} - - if(! function_exists('scrape_dfrn')) { function scrape_dfrn($url) { @@ -53,7 +44,7 @@ function scrape_dfrn($url) { $ret['photo'] = $x->getAttribute('src'); if(attribute_contains($x->getAttribute('class'),'key')) $ret['key'] = $x->textContent; - } + } } } @@ -107,3 +98,40 @@ function scrape_meta($url) { return $ret; }} + + +if(! function_exists('scrape_vcard')) { +function scrape_vcard($url) { + + $ret = array(); + $s = fetch_url($url); + + if(! $s) + return $ret; + + $dom = HTML5_Parser::parse($s); + + if(! $dom) + return $ret; + + // Pull out hCard profile elements + + $items = $dom->getElementsByTagName('*'); + foreach($items as $item) { + if(attribute_contains($item->getAttribute('class'), 'vcard')) { + $level2 = $item->getElementsByTagName('*'); + foreach($level2 as $x) { + if(attribute_contains($x->getAttribute('class'),'fn')) + $ret['fn'] = $x->textContent; + if((attribute_contains($x->getAttribute('class'),'photo')) + || (attribute_contains($x->getAttribute('class'),'avatar'))) + $ret['photo'] = $x->getAttribute('src'); + if((attribute_contains($x->getAttribute('class'),'nickname')) + || (attribute_contains($x->getAttribute('class'),'uid'))) + $ret['nick'] = $x->textContent; + } + } + } + + return $ret; +}}