‘壹’ 如何用php调用外部接口json数据
file_get_contents或者curl都可以
接收到数据后,可以使用php函数json_decode()把json转换成数组或对象格式
‘贰’ php如何写接口给别人调用获取到一定的数据!
那估计不行,在没有绝对安全的情况下,还是不要泄漏自己的用户安全数据,一般都是只返回必要的信息,如果数据库共享,那直接给他们查询帐号就行了...所以,你需要做一个接受页面,然后和上面说的一样,API的雏形就是这样出来的,写出来的页面就和第三方调用差不多,首先判断权限,是否有使用API的权限,然后分析执行发送过来的命令,执行完返回结果,这就是传说中的API,具体的的话,你可以参考很多,就比如UC和DZ论坛的整合,就是使用的API的形式,你可以参考一下他的文件
‘叁’ 如何用php调用外部接口json数据
一般使用php发送请求,获取返回的数据,进行解析;
<?php
$url="接口地址";
//发送请求获取返回值,file_get_contents只支持get请求,post使用curl
$json = file_get_contents($url);
//把json数据转化成数组
$data = json_decode($json,true);
//打印看看
print_r($data);
?>
‘肆’ 如何用php调用外部接口json数据
首先你提问的问题描述不够清楚,我就当你用php去访问其他网站的接口,返回的是api数据
使用php的curl相关函数去访问(不同接口不同的请求验证或者直接get)
使用php内置函数json_decode()解析并处理返回数据
‘伍’ PHP 的API接口
使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证
原理
从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。
时间戳:当前时间
随机数:随机生成的随机数
口令:前后台开发时,一个双方都知道的标识,相当于暗号
算法规则:商定好的运算规则,上面三个参数可以利用算法规则生成一个签名。前台生成一个签名,当需要访问接口的时候,把时间戳,随机数,签名通过URL传递到后台。后台拿到时间戳,随机数后,通过一样的算法规则计算出签名,然后和传递过来的签名进行对比,一样的话,返回数据。
算法规则
在前后台交互中,算法规则是非常重要的,前后台都要通过算法规则计算出签名,至于规则怎么制定,看你怎么高兴怎么来。
我这个算法规则是
时间戳,随机数,口令按照首字母大小写顺序排序
然后拼接成字符串
进行sha1加密
再进行MD5加密
转换成大写。
‘陆’ php怎么调用其他网站提供的api 接口
在这里openUser.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。
需要在PHP代码中执行这条链接他就会返回。
GET方式的直接使用
$file_contents = file_get_content('http://localhost/openUser.php?act=get_user_list&type=json')
POST方式得用下面的。
$url = 'http://localhost/openUser.php?act=get_user_list&type=json';
$ch = acurl_init ();
acurl_setopt ( $ch, CURLOPT_URL, $url );
acurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
acurl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
acurl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交
$file_contents = curl_exec ( $ch );
‘柒’ 如何使用接口文档,查出相对应的信息 php
微信接口举例:
获取关注者信息接口
1、接口使用说明
//获取用户基本信息
publicfunctionget_user_info($openid){
$url="
$this->access_token."&openid=".$openid."&lang=zh_CN";
$res=$this->https_request($url);
returnjson_decode($res,true);
}
接口调用请求说明
http请求方式:GET
2、使用https_request,GET方式
//https请求(支持GET和POST)
protectedfunctionhttps_request($url,$data=null){
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($curl);
curl_close($curl);
return$output;
}
3、正常情况下,微信会返回下述JSON数据包给公众号:
{
"subscribe":1,
"openid":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"nickname":"Band",
"sex":1,
"language":"zh_CN",
"city":"广州",
"province":"广东",
"country":"中国",
"headimgurl":"
,
"subscribe_time":1382694957,
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
"remark":"",
"groupid":0
}
4、json_decode解析JSON获取,接口信息
5、打印接口返回信息
$data=$this->get_user_info('openid');
print_r($data);
所有接口使用类似,主要就是curl发送GET或POST请求,返回接口获取信息。
微信公众号接口是目前移动WEB开发,用的比较多的、文档也较齐全;有许多公司、开发人员都在使用的接口之一;接口使用度比较广、用户人数众多、比较稳定。由于你没有具体指出是什么接口。用微信接口举例,可以让更多的人可以理解。
具体接口详情(微信公众号开发者文档)http://mp.weixin.qq.com/wiki/1/.html 获取用户基本信息接口
‘捌’ php怎么从调用api返回的数据中取出指定值
localAddress是一个json对象,
<?php
$a='{"city":"广州市","province":"广东省"}';
$a=json_decode($a,true);
$b=$a['province'].$a['city'];
echo$b;
‘玖’ PHP如何调用API接口
他会提供相应接口给你的,具体调用方法就相当于讲求某个链接。act=get_user_list&type=json在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。act=get_user_list&type=json';$ch = curl_init ();curl_setopt ( $ch, CURLOPT_URL, $url );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交$file_contents = curl_exec ( $ch );curl_close ( $ch );
‘拾’ 如何用php调用外部接口json数据
两种比较简单的方法:
1、使用curl
$url="http://www.xxxxxxxxxx.com/";
$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 也是可以的