做了一个简单的使用豆瓣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=”.%20$item[@href].%20″/>” ;
}
}
//用来获取书籍的图片
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,更方便使用和提供更多功能。
这个怎么玩啊?你直接弄个网页挂到批评网去算了
博主 对 不三 的回复: 2009-01-19 23:35:05
功能还不完善呢。只是一个根据名字查询书目的东西而已。
你的博客太有意义了,我的博客也是关于joomla方面的, http://www.zxxh.cn
博主 对 博客程序 的回复: 2010-02-03 23:34:14
偶现在洗手IT了,呵呵。
是根据标签查询书目吧