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打动我的 ...
随机推荐
- Less的安装与配置
Less的安装与配置 Less与Sass 先说一段题外话,很多初学者在选择CSS 预处理语言不免会感到犹豫,作为CSS 的两大预处理语言Less与Sass,各自都有着很广泛的使用群体,我究竟该选哪个好 ...
- Parameter pack
Parameter pack C++ C++ language Templates A template parameter pack is a template parameter ...
- 安装64位office时提示已安装32位的office
运行 regedit,进入到HKEY_CLASSES_ROOT\Installer\Products下,删除0000510开头的项,没有00005我把00002....的删了也可以
- sqlmap dvwa SQL Injection使用小记
刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...
- 桌面轻量级数据库的选择:Access、SQLite、自己编写?
1. Access我们做小项目的时候特别是小的MIS系统一般也都要用数据库来保存数据.经观察大部分的小系统都是用Access数据库,有的系统为了掩盖数据库的类型,把数据文件后缀名改了,其实只要改回到m ...
- Android fragment 切换载入数据卡顿问题
接着上一篇项目的进度.上一篇讲了怎样利用fragment来实现下拉菜单.公用菜单,以实现切换主界面数据的功能,这时候遇到的问题是:使用了fragment的切换界面方法.但载入的数据太多.用户从一个界面 ...
- 利用jspx解决jsp后缀被限制拿shell
有些struts2的站在web.xml里面设置url是jsp的格式就自动跳转主页的action,转换jsp后缀大小写还不解析.查了查有Tomcat默认jspx可以解析.看了看jspx的手册,那就好说了 ...
- OpenERP|ODOO高德地图应用
发布时间:2015-04-06 11:01:37来源:http://www.chinamaker.net 在openerp中的fleet模块,每一个车辆都有地图应用.默认采用的是谷歌地图,但是在应用得 ...
- java String->float,float->int
类型转换代码 : String sourceStr = "0.0"; String类型 float sourceF = Float.valueOf(sourceStr); floa ...
- Oracle 导入导出SQL 查看登录用户表个数
导出 : --注意结尾不能加分号; 导入 IMP HLMARKET/HLMARKET@192.168.1.22:1521/orcl file=e:/db/HLMARKET_20150729.dmp f ...