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打动我的 ...
随机推荐
- CCControlExtension/CCControlButton
#ifndef __CCCONTROL_BUTTON_H__ #define __CCCONTROL_BUTTON_H__ #include "CCControl.h" #incl ...
- Java实现文件MD5加密
代码实现: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.s ...
- [译]ES读写文档时shard-replication模型
官网页面:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html 本文是对官网页面的 ...
- Razor语法(五)
约定:客户端代码称C域,服务器端代码称S域 0. 基本原则Razor模板默认是C域(与php.aspx相同)任何C域都可以内嵌S域行内S域不可内嵌C域,多行S域可内嵌任何C域@符号是关键符号,使用@从 ...
- 手机端UC浏览器,在java开发的下载功能中存在的问题?
在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...
- webDriver API——第9部分Firefox WebDriver
class selenium.webdriver.firefox.webdriver.WebDriver(firefox_profile=None, firefox_binary=None, time ...
- mysql 严格模式取消 group by 和 date zore
取消单个库的时间严格模式 set global sql_mode=(select replace(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE',''));
- Debian 的 apt 命令不能使用自动完成的问题
我的Debian是8.10,使用apt-get命令可以正常使用自动完成功能,但apt命令却不行,在国外的一个网站上找到了解决办法: 从这个地址 http://pastebin.com/PRBMt3an ...
- 基于mybatis-generator代码生成工具改(链式方法实体版)
概述 一直以来使用原生mybatis-generator的我发现有一个地方很不方便,即它生成的实体类的set方法返回值是void,而目前比较流行的则是链式set的写法,即set方法返回值不再是void ...
- 【微信小程序】日历插件,适用于酒店订房类小程序
本插件在原作者(传送门:http://blog.csdn.net/lengyue1084/article/details/71248778)基础上升级. 增加了点击选择具体日期和数据传输功能. 效果图 ...