热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信公众平台开发实例PHP开发代码挂载SAE平台(六)星座物语php解析xml文件

今天带来的是查询每日星座运势的功能,这个功能非常简单,在微信平台上输入星座名称加一个标识符(例如+号),后台程序匹配这个标识符调用相应的功能。具体流程上:1使用字符串分割函数explode(w3school)获取
今天带来的是查询每日星座运势的功能,这个功能非常简单,在微信平台上输入星座名称加一个标识符(例如“+”号),后台程序匹配这个标识符调用相应的功能。
 
具体流程上:1.使用字符串分割函数explode(w3school)获取到星座名称。
 
2.将星座名称匹配成相应的星座编号。
 
3.将这个编号传递给相应的API。
 
4.接收API返回的xml格式的数据。
 
5.处理xml格式的数据。
 
6.生成结果。
 
其中我再制作过程中由于是初学者,在第五步费了些功夫。API返回的xml格式为
 
[html]  
 
     
         
        3  
         
     
     
         
        3  
         
     
     
         
        2  
         
     
      ……  
    2013-11-16  
 
 
 
首先我使用file_get_contents() 函数把API返回的数据文件读入一个字符串中。然后用simplexml_load_string() 函数把 XML 字符串载入对象中。然后再使用这个对象读取每个xml标签中的数据,但这里我遇到了一个问题,返回的xml格式的文件都是
[html] 
 
             
           ……  
           ……  
 
 
这种格式,这样我使用“对象”->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]  
 
 
  
$arr=array("one", "two", "three");  
  
foreach ($arr as $value)  
{  
  echo "Value: " . $value . "
";  
}  
?>  
  
 
 
 
 
程序源代码如下:
 
[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(&#39;白羊座&#39; => &#39;0&#39;,&#39;金牛座&#39; => &#39;1&#39;,&#39;双子座&#39; => &#39;2&#39;,&#39;巨蟹座&#39; => &#39;3&#39;,&#39;狮子座&#39; => &#39;4&#39;,&#39;处女座&#39; => &#39;5&#39;,&#39;天秤座&#39; => &#39;6&#39;,&#39;天平座&#39; => &#39;6&#39;,&#39;天蝎座&#39; => &#39;7&#39;,&#39;射手座&#39; => &#39;8&#39;,&#39;摩羯座&#39; => &#39;9&#39;,&#39;水瓶座&#39; => &#39;10&#39;,&#39;双鱼座&#39; => &#39;11&#39;);  
    if(strtr($keyword, $arr)<12&&strtr($keyword, $arr)>0){  
        return strtr($keyword, $arr);  
    }  
 else {  
       return false;   
    }  
      
      
}  
 

推荐阅读
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • wxParse 0.3:微信小程序中的高级 HTML 和 Markdown 富文本解析器,全面支持多级嵌套与 Emoji 表情
    wxParse 0.3 是一款专为微信小程序设计的高级富文本解析器,支持 HTML 和 Markdown 转换为 WXML 可视化格式。该组件不仅能够处理复杂的多级嵌套结构,还全面支持 Emoji 表情,极大地提升了内容展示的多样性和用户体验。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 如何创建和使用快捷链接:掌握打开链接的快捷方式技巧 ... [详细]
  • 在ASP.NET MVC项目中,通过实战解决了Ajax请求500错误及多表数据查询的问题。具体而言,将页面分为两个部分,用户点击右侧导航栏时,通过Ajax请求动态加载数据,并在右侧显示相应的页面内容。最初尝试使用Partial Action方法,但遇到了500错误。通过详细排查和调试,最终成功解决了这一问题,并实现了预期功能。此外,还优化了多表数据查询的性能,确保系统的高效运行。 ... [详细]
  • 尽管许多人认为跑步是一项简单的运动,但实际上它涉及诸多专业知识。不正确的跑步方式不仅会降低锻炼效果,还可能引发伤害。例如,穿着不合脚或过于陈旧的跑鞋,会导致足部支撑不足,增加受伤风险。此外,跑步姿势不当、热身不足、过度训练等问题也同样值得关注。本文将详细介绍七大常见跑步误区,并提供专业的改进建议,帮助跑者避免这些问题,提高运动效率和安全性。 ... [详细]
  • 在第六章中,我们将深入探讨MySQL中的多表查询技术,包括联结查询和子查询。联结查询通过将两个或多个表进行连接,基于连接条件生成结果集。常见的联结类型有内联结、外联结和全外联结。交叉联结(CROSS JOIN)虽然使用较少,但其原理是生成所有可能的组合,类似于笛卡尔积的概念。此外,子查询则是在一个查询语句中嵌套另一个查询,用于获取更复杂的数据集。本章将通过实例详细讲解这些查询方法的应用和优化技巧。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
author-avatar
dmcm0006
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有