前の記事: Nucleusに「被はてなブックマーク数」を表示する
次の記事: qmail-scanner がメジャーバージョンアップして2.00に(BlogPet)
// Hatena.phpの95行目辺りに以下を追加。以上で変更は終了。取得したいURLを配列に入れて渡すと、結果が配列に入って返ってきます。
case 'Bookmarknums': // class for bookmarknums API
// Hatena/Bookmarknum.php を Hatena/Bookmarknums.php という名前でコピー
Hatena/Bookmarknums.php を以下のように変更
@@ -35,7 +35,7 @@
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version Release: 0.1.0
*/
-class Services_Hatena_Bookmarknum extends Services_Hatena
+class Services_Hatena_Bookmarknums extends Services_Hatena
{
/**
* execute
@@ -49,16 +49,17 @@
{
require_once 'XML/RPC.php';
- $params = new XML_RPC_Value($url, 'string');
+ foreach($url as $val) {
+ $params[] = new XML_RPC_Value($val, 'string');
+ }
- $msg = new XML_RPC_Message('bookmark.getCount', array($params));
+ $msg = new XML_RPC_Message('bookmark.getCount', $params);
$client = new XML_RPC_Client('/xmlrpc', $this->bookmark_url, 80);
$response = $client->send($msg);
if (!$response->faultCode()) {
$r = $response->value();
- $r = $r->scalarval();
- return $r[$url]->me['int'];
+ return XML_RPC_Decode($r);
} else {
return PEAR::raiseError('missing the result.');
}
サンプルとなるはずです。
$url[] = "http://www.hatena.ne.jp/";
$url[] = "http://www.google.co.jp/";
$url[] = "http://www.yahoo.co.jp/";
$url[] = "http://www.livedoor.com/";
require_once 'Services/Hatena.php';
$hatena_n = Services_Hatena::factory('Bookmarknums');
$nums = $hatena_n->execute($url);
var_dump($nums);
foreach($nums as $url => $num) {
printf("%s -> %d\n", $url, $num);
}
↓結果↓
array(4) {
["http://www.hatena.ne.jp/"]=>
string(3) "278"
["http://www.yahoo.co.jp/"]=>
string(3) "744"
["http://www.google.co.jp/"]=>
string(3) "429"
["http://www.livedoor.com/"]=>
string(3) "162"
}
http://www.hatena.ne.jp/ -> 278
http://www.yahoo.co.jp/ -> 744
http://www.google.co.jp/ -> 429
http://www.livedoor.com/ -> 162
前の記事: Nucleusに「被はてなブックマーク数」を表示する
次の記事: qmail-scanner がメジャーバージョンアップして2.00に(BlogPet)