作者:公子
发布时间:January 16, 2011
分类:附庸风雅
前几天在捣鼓我的PageCookery主题的时候想引用豆瓣上我最近看过的电影和书,当时只是手工自己写上去的而已。我度过的书到还是好说,一年也难得有一本,但是电影就多了,手写也不是办法。于是开始研究起豆瓣的API了。发现豆瓣输出的是Atom和Json的结果,恩,我用的是Atom的,想要Json版的请看传送门。
效果预览请见传送门,详细代码如下:
| | function Douban($username, $subject, $apikey) | | {<br /> | | if ($apikey == "") | | { | | $apikey='064e10081295144112ea301837bf3cc3'; | | } | | $douban='http://api.douban.com/people/' . $username . '/collection?cat=' . $subject . '&apikey=' . $apikey ; | | $feed = simplexml<em>load</em>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三种类型可以选择,APIKEY我设置了如果为空则默认一个,但是我还是希望大家可以自己去申请一个,因为豆瓣的api有引用频率的限制,如果一个apikey很多人同时用,可能会出问题。如果使用上有什么问题,大家可以留言。
参考资料:PHP中的SimpleXML处理//对SimpleXML的描述很详细,推荐!