xml的写法和特点

<?xml version='1.0' encoding='utf-8'?>
<Info>
<code>c001</code>
<name>张三</name>
</Info>

1.标记不一样
2.标签名可以自定义
3.大小写敏感
4.开始和结束必须要写全
5.标签名也可以有属性

<?php

//如何创建JSON
$attr = array("one"=>123,"two"=>456); $json = json_encode($attr); //解析JSON
$attrjson = json_decode($json);
print_r($attrjson); //创建XML
$str = "<?xml version='1.0' ?>";
$str = $str."<Info>";
$str = $str."<code>c001</code>";
$str = $str."<name>张三</name>";
$str = $str."</Info>"; file_put_contents("aa.txt",$str); //解析XML
$xml = file_get_contents("aa.txt");
$attrxml = simplexml_load_string($xml); print_r($attrxml); $code = $_GET["code"]; include("mydbda.php");
$db = new mydbda(); $sql = "select * from Info where Code = '{$code}'"; $str = $db->Select($sql,"CX","mydb"); $lie = explode("^",$str); $str = "<?xml version='1.0' ?>"; $str .=<<<XX
<Info>
<code>{$lie[0]}</code>
<name>{$lie[1]}</name>
</Info>
XX; $str = $str."<Info>";
$str = $str."<code>{$lie[0]}</code>";
$str = $str."<name>{$lie[1]}</name>";
$str = $str."</Info>"; echo $str; //以下使用的是md5签名方式,并不是简单签名 header("Content-Type:text/html;charset=UTF-8");
date_default_timezone_set("PRC");
$showapi_appid = '4711'; //替换此值
$showapi_sign = '6c942094705c4a469d01114136e608e7'; //替换此值。
$showapi_timestamp = date('YmdHis');
$paramArr = array(
'showapi_appid'=> $showapi_appid,
'areaid' => '' ,
'area' => '淄博' ,
'needMoreDay' => '' ,
'needIndex' => '' ,
'needHourData' => '' ,
'need3HourForcast' => '' ,
'needAlarm' => '' ,
'showapi_timestamp' => $showapi_timestamp
// other parameter
); function createSign ($paramArr) {
global $showapi_sign;
$sign = "";
ksort($paramArr);
foreach ($paramArr as $key => $val) {
if ($key != '' && $val != '') {
$sign .= $key.$val;
}
}
$sign.=$showapi_sign;
$sign = strtoupper(md5($sign));
return $sign;
}
function createStrParam ($paramArr) {
$strParam = '';
foreach ($paramArr as $key => $val) {
if ($key != '' && $val != '') {
$strParam .= $key.'='.urlencode($val).'&';
}
}
return $strParam;
} $sign = createSign($paramArr);
$strParam = createStrParam($paramArr);
$strParam .= 'showapi_sign='.$sign;
$url = 'http://route.showapi.com/9-2?'.$strParam; $result = file_get_contents($url);
$result = json_decode($result); $attr = object_array($result); //echo $attr['showapi_res_body']['f1']['day_air_temperature']; echo "今天的温度是:{$attr['showapi_res_body']['f1']['day_air_temperature']}--{$attr['showapi_res_body']['f1']['night_air_temperature']}"; function object_array($array) {
if(is_object($array)) {
$array = (array)$array;
} if(is_array($array)) {
foreach($array as $key=>$value) {
$array[$key] = object_array($value);
}
}
return $array;
} ?>
<?php
header("Content-Type:text/html;charset=UTF-8"); $str = file_get_contents("http://f.apiplus.cn/ssq-10.json");
$result = json_decode($str); print_r($result); ?>

PHP——做服务的更多相关文章

  1. 为什么不应该使用Zookeeper做服务发现?(转载)

    转载自: http://dockone.io/article/78 [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个 ...

  2. 阿里巴巴为什么不用 ZooKeeper 做服务发现?

    阿里巴巴为什么不用 ZooKeeper 做服务发现? http://jm.taobao.org/2018/06/13/%E5%81%9A%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8 ...

  3. 为什么不应该使用ZooKeeper做服务发现

    [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...

  4. [C#]做服务使用Process启动外部程序没窗体

    这几天会到一个需要,要时时侦测文件生成,并上传到Server上,侦测文件生成使用的FileSystemWatch.但是时时运行遇到了问题,程序可能会人为退出或者意外终止,使用一个进程监控程序的监程,也 ...

  5. 使用Consul做服务发现的若干姿势

    从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验.最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使 ...

  6. Consul做服务发现

    使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后 ...

  7. 【转】用 Consul 来做服务注册与服务发现

    原文:https://segmentfault.com/a/1190000018731395?utm_source=tag-newest ------------------------------- ...

  8. io型和有状态的应用不放入k8s,而是做服务映射

    io型和有状态的应用不放入k8s,而是做服务映射 待办 在实际应用中,一般不会把mysql这种重IO.有状态的应用直接放入k8s中,而是使用专用的服务器来独立部署.而像web这种无状态应用依然会运行在 ...

  9. Go | Go 使用 consul 做服务发现

    Go 使用 consul 做服务发现 目录 Go 使用 consul 做服务发现 前言 一.目标 二.使用步骤 1. 安装 consul 2. 服务注册 定义接口 具体实现 测试用例 3. 服务发现 ...

  10. Api网关Kong集成Consul做服务发现及在Asp.Net Core中的使用

    写在前面   Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下kong对比ocelot打动我的 ...

随机推荐

  1. 线程局部存储(TLS)

    线程局部存储(TLS) 2011-10-11 09:59:28|  分类: Win32---API |  标签:tls   |举报 |字号 订阅   什么是线程局部存储 众所周知,线程是执行的单元,同 ...

  2. VB6.0 中 碰到 提示rs对象关闭,不允许操作, 吃一堑长一智

    VB6.0 中 碰到 提示rs对象关闭,不允许操作,  吃一堑长一智 如果碰到 这个错误提示 则请检查 你执行的每一个语句中的数据类型,包括 如果有存储过程的话,还要检查 存储过程中每一个变量和数据表 ...

  3. Linux C高级编程——文件操作之系统调用

    Linux C高级编程文件操作之系统调用 宗旨:技术的学习是有限的,分享的精神是无限的.           库函数是一些完毕特定功能的函数.一般由某个标准组织制作公布,并形成一定的标准.使用库函数编 ...

  4. CentOS6.8 4.4.43内核 安装PF_RING

    环境: 系统:CentOS 6.8 内核版本:4.4.43 PF_RING版本:6.9.0 编译PF_RING需要内核源码,由于我的机器上只有4.4.43版本的modules和4.4.43的源码,并没 ...

  5. Android Annotations浅析

    这阵子遇到了好多事情,挺久没来更新博文了,这两天在学这个开源框架Android Annotations,用起来感觉挺方便的, 相信用过Spring注解的孩子理解起来应该比較easy! 就是配置起来比較 ...

  6. java Web笔记

    Get:标记在地址栏中 放在请求行中显示get?Username=...Password=... Post:使用的是二进制的上传下载 请求行不显示信息 数据传输量大数据隐蔽对文本没有 pst不能再浏览 ...

  7. OpenERP|ODOO高德地图应用

    发布时间:2015-04-06 11:01:37来源:http://www.chinamaker.net 在openerp中的fleet模块,每一个车辆都有地图应用.默认采用的是谷歌地图,但是在应用得 ...

  8. Pthreads并行编程之spin lock与mutex性能对比分析(转)

    POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API.线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用 ...

  9. logback 配置解析

    http://www.cnblogs.com/cb0327/p/5759441.html 正文 回到顶部 1.根节点<configuration>包含的属性 scan: 当此属性设置为tr ...

  10. Spring MVC 单元测试异常 Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file

    Sping 3.2.8.RELEASE + sping mvc + JDK 1.8运行异常. java.lang.IllegalStateException: Failed to load Appli ...