FacebookやTwitter、Google+等のシェア数・いいね数をPHPでカウントする方法をご紹介します!PHPでカウントすることができれば、結果の値を使って自由にソーシャルボタンを自作できますので、是非ご利用下さい(。・ω・。)
1. 共通プログラム
各SNSのいいね、ツイート数、シェア数をカウントするためには、対象のサイトURLを取得する必要があります!今回は、自サイトのURLを取得する下記コードを埋め込んで下さい。
# カウントを表示する対象のページのURLを取得 $get_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
2. 各種SNSのカウント数取得
PHPでFacebookの「いいね数」取得
Facebookのいいね数は、FQLを利用して下記コードで取得できます!json形式で取得しておりますので、取得時後->を利用して、値を取ってきて下さい。尚、コメント数やシェア数、その全てをあわせた合計数も同時に取得してます!
# Facebook いいね数取得(FQL JSON取得) $fql = urlencode('SELECT like_count, share_count, comment_count, total_count FROM link_stat WHERE url="'.$get_url.'"'); $fb_count_uri = 'http://api.facebook.com/method/fql.query?format=json&query='. $fql; $json = file_get_contents($fb_count_uri); $result_facebook = json_decode($json); # 結果出力方法 echo $result_facebook[0]->{'total_count'};
PHPでTwitterの「ツイート数」取得
Twitterのツイート数取得方法です。Twitterは仕様変更が多いので、取れなくなる可能性も高いですが・・・取れなくなった際は、随時その仕様に合わせていきましょう!
# Twitter ツイート数取得 $twit_uri = 'http://urls.api.twitter.com/1/urls/count.json?url=' . rawurlencode($get_url); $json = file_get_contents($twit_uri); $result_twitter = json_decode($json); # 結果出力方法 echo $result_twitter->{'count'};
PHPでGoogle+の「プラス数」取得
Googleのポータルサイトは日本ではあまり人気はないですが、海外ではかなり活用されています!WEBページはワールドワイドな世界なので、是非こちらも追加してみて下さい!
# Google+ +数取得 $google = file_get_contents( 'https://apis.google.com/_/+1/fastbutton?url=' . urlencode( $get_url ) ); # 正規表現でカウント数のところだけを抽出 preg_match( '/\[2,([0-9.]+),\[/', $google, $result_google); # 結果出力方法 echo $result_google[1];
PHPでHatenaBookmarkの「ブックマーク数」取得
ブックマークサイト、はてブのブックマーク数方法です!日本でははてブで管理されている方も多く、まだまだ現役なSNSです!
# HatenaBookmark ブックマーク数取得 $hate_uri = 'http://b.hatena.ne.jp/entry/json/?url='. rawurlencode($get_url); $json = file_get_contents($hate_uri); $result_hatena = json_decode($json); # 結果出力方法 echo (int)$result_hatena->count;
PHPでPocketの「ポケット数」取得
ライトユーザにはあまり居ないですが、Pocketもよく使われてます!はてブと同じような立ち位置のサイトです(。・ω・。)
# Pocket ポケット数取得 $query = 'http://widgets.getpocket.com/v1/button?v=1&count=horizontal&url=' . $get_url; $html = file_get_contents($query); $start_str = "<em id"; $end_str = "</em>"; $pos1 = strpos($html, $start_str); $pos2 = strpos($html, $end_str); $count_pk = $pos2 - ($pos1 + 13); $result_pocket = substr($html,$pos1 + 13,$count_pk); # 結果出力方法 echo $result_pocket;
いかがでしたでしょうか、ソーシャルボタンのカウント数は、javascript等でも取得可能ですが、どちらの手法でもパフォーマンスが気になります(各種SNSから値が返ってこないと、ページ読み込み完了にならない)。パフォーマンスとにらめっこしつつ、是非素敵なソーシャルボタンを作って下さい♪ヾ(。・ω・。)ノ゙
PHP関連記事
PHPのその他記事もまとめてますので、是非お立ち寄りください(。・ω・。)
この記事へのコメントはありません。