使用豆瓣Api简单查询书籍

做了一个简单的使用豆瓣Api查询书籍的信息。代码如下,将其存为如douban.php文件,然后运行。本地测试我使用的是wamp server2。

<form method=”post”>
<input name=”book” /><input type=submit value=”提交” />

</form>
//”<form></form>”为表单,让用户提交要查询的关键词如书名

<?php
$book=$_POST['book'];

//用来获取表单提交的信息
$tag = urlencode($book);

//将中文编码

$q = file_get_contents(‘http://api.douban.com/book/subjects?tag=’.$tag.’&start-index=1&max-results=5′);

//把查询的结果存储到$q。如果要搜索电影或音乐就将上面http://api.douban.com/book/里的book改为movie或//music,max-results后面是搜索返回的结果。
$xml = simplexml_load_string($q,null,null,”http://www.douban.com/xmlns/”);

//使用php的simplexml解析xml文件
foreach ($xml->children()->entry as $w){

//第一个foreach循环查找xml文件中所有的entry元素
foreach ($w->children($link[@href]) as $x){

//第二个foreach循环查找entry元素下的<link>中的href属性

if($x[@rel] == ‘self’){

$apiurl=$x[@href];

//当<link>中rel属性是self时,存储这个api的url地址
$Feed = file_get_contents($apiurl);
$xml = simplexml_load_string($Feed,null,null,”http://www.douban.com/xmlns/”);

//再次解析上面获得的api的url地址中的xml,即搜索出来的每个书籍条目的详细内容
foreach ($xml->children($link[@href]) as $item){
if($item[@rel] == ‘image’){
echo “<p><br><div><img src=”. $item[@href]. “/>” ;
}
}

//用来获取书籍的图片
foreach($xml->attribute as $value){
if($value->attributes() == ‘title’){
echo “<span>《”.$value.”》</span>”;
}
if($value->attributes() == ‘author’){
echo “<span>”.$value.”著,</span>”;
}
if($value->attributes() == ‘translator’){
echo “<span>”.$value.”译,</span>”;
}
if($value->attributes() == ‘publisher’){
echo “<span>”.$value.”,</span>”;
}
if($value->attributes() == ‘pubdate’){
echo “<span>”.$value.”.</span></div>”;
}

//获取书名、作者等信息
}
}
}
}
?>

花了几天时间终于写了第一个php程序,有点小成就感。作为一个php菜虫,希望能给php菜鸟们一点帮助。

接下来想将这个做成Drupal的module,更方便使用和提供更多功能。

使用豆瓣Api简单查询书籍》上有 3 条评论

  1. 不三

    这个怎么玩啊?你直接弄个网页挂到批评网去算了
    博主 对 不三 的回复: 2009-01-19 23:35:05
    功能还不完善呢。只是一个根据名字查询书目的东西而已。

    回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>