Php script to get social share count

I have created a tool to check social popularity of website. That shows total number of Google plus, Tweets, Facebook likes, Stumbleupon views, Delicious bookmarks, Linkedin shares and Pinterest pins for a website or URL.

Here is a php class to get social share count. It might be useful for you

<?
class shareCount {
private $url,$timeout;
function __construct($url,$timeout=10) {
$this->url=rawurlencode($url);
$this->timeout=$timeout;
}
function get_tweets() { 
$json_string = $this->file_get_contents_curl('http://urls.api.twitter.com/1/urls/count.json?url=' . $this->url);
$json = json_decode($json_string, true);
return isset($json['count'])?intval($json['count']):0;
}
function get_linkedin() { 
$json_string = $this->file_get_contents_curl("http://www.linkedin.com/countserv/count/share?url=$this->url&format=json");
$json = json_decode($json_string, true);
return isset($json['count'])?intval($json['count']):0;
}
function get_fb() {
$json_string = $this->file_get_contents_curl('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls='.$this->url);
$json = json_decode($json_string, true);
return isset($json[0]['total_count'])?intval($json[0]['total_count']):0;
}
function get_plusones()  {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"'.rawurldecode($this->url).'","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$curl_results = curl_exec ($curl);
curl_close ($curl);
$json = json_decode($curl_results, true);
return isset($json[0]['result']['metadata']['globalCounts']['count'])?intval( $json[0]['result']['metadata']['globalCounts']['count'] ):0;
}
function get_stumble() {
$json_string = $this->file_get_contents_curl('http://www.stumbleupon.com/services/1.01/badge.getinfo?url='.$this->url);
$json = json_decode($json_string, true);
return isset($json['result']['views'])?intval($json['result']['views']):0;
}
function get_delicious() {
$json_string = $this->file_get_contents_curl('http://feeds.delicious.com/v2/json/urlinfo/data?url='.$this->url);
$json = json_decode($json_string, true);
return isset($json[0]['total_posts'])?intval($json[0]['total_posts']):0;
}
function get_pinterest() {
$return_data = $this->file_get_contents_curl('http://api.pinterest.com/v1/urls/count.json?url='.$this->url);
$json_string = preg_replace('/^receiveCount\((.*)\)$/', "\1", $return_data);
$json = json_decode($json_string, true);
return isset($json['count'])?intval($json['count']):0;
}
private function file_get_contents_curl($url){
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
$cont = curl_exec($ch);
if(curl_error($ch))
{
die(curl_error($ch));
}
return $cont;
}
}
?>

How to use it?

Save above code as shareCount.php

<?
require("shareCount.php");
$obj=new shareCount("http://www.website.com");  //Use your website or URL
echo $obj->get_tweets(); //to get tweets
echo $obj->get_fb(); //to get facebook total count (likes+shares+comments)
echo $obj->get_linkedin(); //to get linkedin shares
echo $obj->get_plusones(); //to get google plusones
echo $obj->get_delicious(); //to get delicious bookmarks  count
echo $obj->get_stumble(); //to get Stumbleupon views
echo $obj->get_pinterest(); //to get pinterest pins
?>

Demo Download


Liked It? Get Free updates in your Email

Delivered by feedburner

12 thoughts on “Php script to get social share count

  1. Pablo
    #

    Hey,

    Would you please extend a bit more on what exactly is the count that your code retrieves ?
    It searches every single social network on the list for comments on the url ?
    Thanks for this post

    Pablo

    Reply
  2. v.vimal
    #

    php script to get the digg share count pelase help me

    Reply
  3. Rachel
    #

    Hi! Can you help me get the share count for linkedin, twitter and google plus using the code above but only returning the value for the last 7 days?

    Facebook I figured out, the problem are the others…

    Thank you!

    Reply
  4. rogama
    #

    Hi, to shared in google+ get error

    User Rate Limit Exceeded. Please sign up
    Any idea?

    Reply
  5. ankush
    #

    I implemented this on my website. However, the counts are not refreshing after some pages were shared. Please let me know what we need to do to refresh them?

    Thanks for all your help. I appreciate it!

    Reply
  6. Vern
    #

    I Get A Error:
    00SSL certificate problem: unable to get local issuer certificate

    Reply
    1. sunny Post author
      #

      add following code after line number 59 in above class
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

      this will disable ssl check

      Reply
  7. Wladass
    #

    Thanks for it. I used in my own system. Thx.

    Reply
  8. Mauricio
    #

    Thanks, save me a lot of time.

    Reply
  9. Pingback: [PHP] URL สำหรับดึงเลข Share Facebook, Twitter | By Perth

  10. serd
    #

    Sunny thanks this code. Is that async? How can i convert this code to async?

    Reply
  11. ajay kumar
    #

    The requested URL returned error: 404 Not Found after 2 days i implemented script share count . where is the function declare . please give me the solution of this. ??

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *