diff options
author | Mike Macgirvin <mike@macgirvin.com> | 2010-07-01 16:48:07 -0700 |
---|---|---|
committer | Mike Macgirvin <mike@macgirvin.com> | 2010-07-01 16:48:07 -0700 |
commit | 6348e70daa113e8b3203de8fbc919d08c90d972e (patch) | |
tree | 1bc3dd3bc85fe6136411086785cf6753960e22f9 /include/Scrape.php | |
download | volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.gz volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.bz2 volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.zip |
Initial checkin
Diffstat (limited to 'include/Scrape.php')
-rw-r--r-- | include/Scrape.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/include/Scrape.php b/include/Scrape.php new file mode 100644 index 000000000..cc5015165 --- /dev/null +++ b/include/Scrape.php @@ -0,0 +1,80 @@ +<?php + +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) { + + $ret = array(); + $s = fetch_url($url); + + if(! $s) + return $ret; + + $dom = HTML5_Parser::parse($s); + + if(! $dom) + return $ret; + + $items = $dom->getElementsByTagName('link'); + + // get DFRN link elements + + foreach($items as $item) { + $x = $item->getAttribute('rel'); + if(substr($x,0,5) == "dfrn-") + $ret[$x] = $item->getAttribute('href'); + } + + // 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')) + $ret['photo'] = $x->getAttribute('src'); + if(attribute_contains($x->getAttribute('class'),'key')) + $ret['key'] = $x->textContent; + } + } + } + + return $ret; +}} + + + + + + +if(! function_exists('validate_dfrn')) { +function validate_dfrn($a) { + $errors = 0; + if(! x($a,'key')) + $errors ++; + if(! x($a,'dfrn-request')) + $errors ++; + if(! x($a,'dfrn-confirm')) + $errors ++; + if(! x($a,'dfrn-notify')) + $errors ++; + if(! x($a,'dfrn-poll')) + $errors ++; + return $errors; +}} + + + |