重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
那估计不行,在没有绝对安全的情况下,还是不要泄漏自己的用户安全数据,一般都是只返回必要的信息,如果数据库共享,那直接给他们查询帐号就行了...所以,你需要做一个接受页面,然后和上面说的一样,API的雏形就是这样出来的,写出来的页面就和第三方调用差不多,首先判断权限,是否有使用API的权限,然后分析执行发送过来的命令,执行完返回结果,这就是传说中的API,具体的的话,你可以参考很多,就比如UC和DZ论坛的整合,就是使用的API的形式,你可以参考一下他的文件
成都创新互联公司专业为企业提供耒阳网站建设、耒阳做网站、耒阳网站设计、耒阳网站制作等企业网站建设、网页设计与制作、耒阳企业网站模板建站服务,十多年耒阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...
1、查询方式:
百度提供的是根据纬度和城市名查询天气情况
2、接口事例:
3、接口参数说明:
4、返回结果说明:
5、
//城市名
$city = '上海';
//对json格式的字符串进行编码
$arr =json_decode($str,TRUE);
print_r($atr);
//城市名
$city = '上海';
//获取json格式的数据
$str =file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr =json_decode($str,TRUE);
print_r($atr);
6、返回页面的是json编码后的数据:
[plain] view plain copy print?
meta charset="UTF-8"
Array
(
[error] = 0
[status] = success
[date] = 2014-03-17
[results] = Array
(
[0] = Array
(
[currentCity]= 上海
[weather_data]= Array
(
[0]= Array
(
[date] = 周一(今天, 实时:19℃)
[dayPictureUrl] =
[nightPictureUrl] =
[weather] = 晴
[wind] = 西南风3-4级
[temperature] = 13℃
)
[1] = Array
(
[date]= 周二
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转阴
[wind]= 东北风3-4级
[temperature] = 24 ~ 9℃
)
[2] = Array
(
[date]= 周三
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 中雨转小雨
[wind]= 东北风3-4级
[temperature] = 15 ~ 8℃
)
[3] = Array
(
[date]= 周四
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转晴
[wind]= 北风3-4级
[temperature] = 14 ~ 6℃
)
)
)
)
)
meta charset="UTF-8"
Array
(
[error] = 0
[status] = success
[date] = 2014-03-17
[results] = Array
(
[0] = Array
(
[currentCity]= 上海
[weather_data]= Array
(
[0]= Array
(
[date] = 周一(今天, 实时:19℃)
[dayPictureUrl] =
[nightPictureUrl] =
[weather] = 晴
[wind] = 西南风3-4级
[temperature] = 13℃
)
[1] = Array
(
[date]= 周二
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转阴
[wind]= 东北风3-4级
[temperature] = 24 ~ 9℃
)
[2] = Array
(
[date]= 周三
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 中雨转小雨
[wind]= 东北风3-4级
[temperature] = 15 ~ 8℃
)
[3] = Array
(
[date]= 周四
[dayPictureUrl] =
[nightPictureUrl] =
[weather]= 多云转晴
[wind]= 北风3-4级
[temperature] = 14 ~ 6℃
)
)
)
)
)
7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:
[php] view plain copy print?
metacharset="UTF-8"
?php
//城市名
$city = '上海';
//获取json格式的数据
$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr = json_decode($str,TRUE);
echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";
foreach($arr['results'][0]['weather_data']as $val)
{
echo $val['date']."br/";
echo "天气:{$val['weather']}br/";
echo "风向:{$val['wind']}br/";
echo "温度:{$val['temperature']}br/br /";
}
?
metacharset="UTF-8"
?php
//城市名
$city = '上海';
//获取json格式的数据
$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//对json格式的字符串进行编码
$arr = json_decode($str,TRUE);
echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";
foreach($arr['results'][0]['weather_data']as $val)
{
echo $val['date']."br/";
echo "天气:{$val['weather']}br/";
echo "风向:{$val['wind']}br/";
echo "温度:{$val['temperature']}br/br /";
}
?
8、返回的内容如下:
其实我觉得你的思路存在问题。首先,你不应该再存到自己的数据库中,因为航空公司那边的机票是实时变化的,你保存到自己的数据库后,如果你不是根据他那边的数据实时变化,那么你这边的数据就不准了。如果你要根据他那边的数据的变化再变化,那么你处理得很多,比如那边每卖一次、或退一次。。。可能还有其他可能 ,你都得进行处理,而这种情况就得像触发器才能合理,你总不能每秒去他那边取。
所以建议不用自己的数据库,既然是接口那你直接要到那边的接口,用什么查什么,总能保证数据是最正确的,因为毕竟是从他的数据库里读到的数据。如果他不能给你提供你所要的接口,那这种做法本身就实现不了。
两种比较简单的方法:
1、使用curl
$url = "";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT , 30);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
2、使用file_get_contents
$output = file_get_contents($url);
echo $output;
3 、使用socket 也是可以的