微信公众平台开发实例 PHP开发 代码挂载SAE平台(六)星座物语 php解析xml文件
今天带来的是查询每日星座运势的功能,这个功能非常简单,在微信平台上输入星座名称加一个标识符(例如“+”号),后台程序匹配这个标识符调用相应的功能。
具体流程上:1.使用字符串分割函数explode(w3school)获取到星座名称。
2.将星座名称匹配成相应的星座编号。
3.将这个编号传递给相应的API。
4.接收API返回的xml格式的数据。
5.处理xml格式的数据。
6.生成结果。
其中我再制作过程中由于是初学者,在第五步费了些功夫。API返回的xml格式为
[html]
<root>
<item>
<title>综合运势</title>
<rank>3</rank>
<value></value>
</item>
<item>
<title>爱情运势</title>
<rank>3</rank>
<value></value>
</item>
<item>
<title>工作状况</title>
<rank>2</rank>
<value></value>
</item>
……
<item>2013-11-16</item>
</root>
首先我使用file_get_contents() 函数把API返回的数据文件读入一个字符串中。然后用simplexml_load_string() 函数把 XML 字符串载入对象中。然后再使用这个对象读取每个xml标签中的数据,但这里我遇到了一个问题,返回的xml格式的文件都是
[html]
<item>
<title>……</title>
<rank>……<rank>
<value>……<value>
</item>
这种格式,这样我使用“对象”->item->title的方法只能读取到第一个item的数据,这里我最终使用的办法的使用
[php]
foreach ($xml->item as $th) {
$content_title[$i] = $th->title;
$content_rank[$i] = $th->rank;
$content_value[$i] = $th->value;
$i++;
}
对这个对象“$xml”实现遍历,并使用一个自增变量i把每一组的数据存储在数组中。
其中的foreach 语句用于循环遍历数组。
每进行一次循环,当前数组元素的值就会被赋值给 value 变量(数组指针会逐一地移动) - 以此类推。
语法
[php]
foreach (array as value)
{
code to be executed;
}
例子
下面的例子示范了一个循环,这个循环可以输出给定数组的值:
[php]
<html>
<body>
<?php
$arr=array("one", "two", "three");
foreach ($arr as $value)
{
echo "Value: " . $value . "<br />";
}
?>
</body>
</html>
程序源代码如下:
[php]
function xingzuo($keyword) {
if (make_xingzuo($keyword)) {
$keyword = make_xingzuo($keyword);
$qurl = 'http://api.uihoo.com/astro/astro.http.php?fun=day&id=' . $keyword . '&format=xml';
$content = file_get_contents($qurl);
$xml = simplexml_load_string($content);
$i = 0;
foreach ($xml->item as $th) {
$content_title[$i] = $th->title;
$content_rank[$i] = $th->rank;
$content_value[$i] = $th->value;
$i++;
}
return "星座运势:/n综合运势:" . $content_rank[0] . "颗星/n爱情运势:" . $content_rank[1] . "颗星/n学习状态:" . $content_rank[2] . "颗星/n理财运势:" . $content_rank[3] . "颗星/n健康指数:" . $content_value[4] . "/n幸运颜色:" . $content_value[6] . "/n幸运数字:" . $content_value[7] . "/n速配星座:" . $content_value[8] . "/n综合概述:" . $content_value[9];
}
else
return "输入的星座小编不认识哎>_< ";
}
function make_xingzuo($keyword){
$arr = array('白羊座' => '0','金牛座' => '1','双子座' => '2','巨蟹座' => '3','狮子座' => '4','处女座' => '5','天秤座' => '6','天平座' => '6','天蝎座' => '7','射手座' => '8','摩羯座' => '9','水瓶座' => '10','双鱼座' => '11');
if(strtr($keyword, $arr)<12&&strtr($keyword, $arr)>0){
return strtr($keyword, $arr);
}
else {
return false;
}
}
>更多相关文章
- 02-25谷歌推行Tango 3D智能视效手机开发项目
- 12-22php $_server应用
- 12-22PHP 解决一次因压缩代码引发的死循环
- 12-22php jquery 多文件上传
- 12-22该如何使用thinkphp分表呢?
- 12-22thinkPHP模板的输出和模型的使用
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御