function get_data($type, $url) { $count = 0; switch ($type) { case 'twitter': $content = parse("http://cdn.api.twitter.com/1/urls/count.json?url=" . $url); $json = json_decode($content); $result['count'] = $json->count; if (!isset($result['count'])) { $result['count'] = 0; } $count = format_count($result['count']); break; case 'stumbleupon': $content = parse("http://www.stumbleupon.com/services/1.01/badge.getinfo?url=" . $url); $json = json_decode($content); $result['count'] = $json->result->views; if (!isset($result['count'])) { $result['count'] = 0; } $count = format_count($result['count']); break; case 'googleplus': $content = parse("https://plusone.google.com/u/0/_/+1/fastbutton?url=" . $url . "&count=true"); $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; @$dom->loadHTML($content); $domxpath = new DOMXPath($dom); $newDom = new DOMDocument(); $newDom->formatOutput = true; $filtered = $domxpath->query("//div[@id='aggregateCount']"); $result['count'] = str_replace('>', '', $filtered->item(0)->nodeValue); $count = $result['count']; break; case 'facebook': $content = parse("http://graph.facebook.com/?id=" . $url); $json = json_decode($content); try { $result['count'] = $json->likes; } catch (Exception $e) { $result['count'] = 0; } if ($result['count'] == 0) { try { $result['count'] = $json->shares; } catch (Exception $e) { $result['count'] = 0; } } if (!isset($result['count'])) { $result['count'] = 0; } $count = format_count($result['count']); break; case 'linkedin': $content = parse("http://www.linkedin.com/countserv/count/share?format=jsonp&url=" . $url); $content = substr_replace($content, '', 0, 26); $startIndex = strlen($content); $content = substr_replace($content, '', $startIndex - 2, 2); $json = json_decode($content); try { $result['count'] = $json->count; } catch (Exception $e) { $result['count'] = 0; } if (!isset($result['count'])) { $result['count'] = 0; } $count = format_count($result['count']); break; } return $count; }
/** * Utility retrieves count plus count options, * returns appropriate format based on options * @since 0.5 */ function get_like_count($like_count) { $number = format_count($like_count); return $number; }