PHP——做服务
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——做服务的更多相关文章
- 为什么不应该使用Zookeeper做服务发现?(转载)
转载自: http://dockone.io/article/78 [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个 ...
- 阿里巴巴为什么不用 ZooKeeper 做服务发现?
阿里巴巴为什么不用 ZooKeeper 做服务发现? http://jm.taobao.org/2018/06/13/%E5%81%9A%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8 ...
- 为什么不应该使用ZooKeeper做服务发现
[编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...
- [C#]做服务使用Process启动外部程序没窗体
这几天会到一个需要,要时时侦测文件生成,并上传到Server上,侦测文件生成使用的FileSystemWatch.但是时时运行遇到了问题,程序可能会人为退出或者意外终止,使用一个进程监控程序的监程,也 ...
- 使用Consul做服务发现的若干姿势
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验.最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使 ...
- Consul做服务发现
使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后 ...
- 【转】用 Consul 来做服务注册与服务发现
原文:https://segmentfault.com/a/1190000018731395?utm_source=tag-newest ------------------------------- ...
- io型和有状态的应用不放入k8s,而是做服务映射
io型和有状态的应用不放入k8s,而是做服务映射 待办 在实际应用中,一般不会把mysql这种重IO.有状态的应用直接放入k8s中,而是使用专用的服务器来独立部署.而像web这种无状态应用依然会运行在 ...
- Go | Go 使用 consul 做服务发现
Go 使用 consul 做服务发现 目录 Go 使用 consul 做服务发现 前言 一.目标 二.使用步骤 1. 安装 consul 2. 服务注册 定义接口 具体实现 测试用例 3. 服务发现 ...
- Api网关Kong集成Consul做服务发现及在Asp.Net Core中的使用
写在前面 Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下kong对比ocelot打动我的 ...
随机推荐
- LVS+keepalived+nginx
LVS是Linux Virtual Server的简写,基于4层协议不处理,不响应,只转发,速度更快 wget -c http://www.linuxvirtualserver.org/softwar ...
- 【java】Could not find or load main class
https://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean A comm ...
- JVM性能监控工具(一)-jdk命令行工具
转载:http://blog.csdn.net/top_code/article/details/51456186 当系统出bug需要定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处 ...
- TestNG 五 运行TestNG
一.并行运行于超时 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: <suite name="My suite&q ...
- Maven中setting.xml配置Demo
<!-- 指定本地默认仓库 --> <localRepository>G:\Java\apache-maven-3.5.2\repository</localReposi ...
- C#运行原理——我的柔情你永远不懂
记得歌手陈琳曾经在1993年发行了第一张专辑<你的柔情我永远不懂>,创造了150万张的销售纪录,里边的主打歌——我的柔情你永远不懂,多年以后才发现是写给C#运行原理的,因为原理总是伤不起~ ...
- python __set__ __get__ __delete__
class Attr(object): def __init__(self,attrname,attrtype): self.attrname=attrname self.attrtype=attrt ...
- python学习准备阶段(环境配置)python解释器的选择
pycharm提示No Python interpreter configgured for the project ####### 1 点击configure python interpreter ...
- axios [æk'si:əʊs] 及 axios 请求配置
特征 比Jquery轻量,但处理请求不多的时候,可以使用 基于Promise语法标准 支持nodejs 自动转换JSON数据 用法 get // Make a request for a user w ...
- AngularJS实现简单的分页功能
本篇文章由:http://xinpure.com/angularjs-simple-paging-functionality/ 初学 AngularJS, 尝试着写一些小功能 代码逻辑写得略粗糙,仅仅 ...