引用豆瓣最近读过的书和看过的电影

提醒:本文最后更新于 4815 天前,文中所描述的信息可能已发生改变,请谨慎使用。

前几天在捣鼓我的PageCookery主题的时候想引用豆瓣上我最近看过的电影和书,当时只是手工自己写上去的而已。我度过的书到还是好说,一年也难得有一本,但是电影就多了,手写也不是办法。于是开始研究起豆瓣的API了。发现豆瓣输出的是Atom和Json的结果,恩,我用的是Atom的,想要Json版的请看传送门

效果预览请见传送门,详细代码如下:

<?php
function Douban($username, $subject, $apikey)
{	
if ($apikey == "")
{
  $apikey='064e10081295144112ea301837bf3cc3';
}
$douban='http://api.douban.com/people/' . $username . '/collection?cat=' . $subject . '&apikey=' . $apikey ;
$feed =  simplexml_load_file($douban);
$children =  $feed->children('http://www.w3.org/2005/Atom');
$a = $children-> entry->children('http://www.w3.org/2005/Atom')->xpath('//db:subject');
echo '<ul>';
foreach ($a as $d) echo '<li>' . $d -> title . '</li>';
echo '</ul>';
}

我把它定义成了一个函数Douban,WP就放到主题的function.php下,PageCookery就放到/lib/function_microblog.php里,其它的自己看着办咯。引用的时候只要如下形式即可

<?php Douban('lizheming', 'movie' , '');//形式是昵称|收藏类型|API_KEY ?>

收藏类型有movie|book|music三种类型可以选择,API_KEY我设置了如果为空则默认一个,但是我还是希望大家可以自己去申请一个,因为豆瓣的api有引用频率的限制,如果一个api_key很多人同时用,可能会出问题。如果使用上有什么问题,大家可以留言。

参考资料:PHP中的SimpleXML处理 //对SimpleXML的描述很详细,推荐!

Avatar
怡红公子 擅长前端和 Node.js 服务端方向。热爱开源时常在 Github 上活跃,也是博客爱好者,喜欢将所学内容总结成文章分享给他人。

1 评论

大大的小蜗牛 Chrome8.0 Windows XP
2011-01-19 20:45:12 回复

谢谢分享。