首先你提问的问题描述不够清楚,我就当你用php去访问其他网站的接口,返回的是api数据
10年积累的做网站、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有如皋免费网站建设让你可以放心的选择与我们合作。
使用php的curl相关函数去访问(不同接口不同的请求验证或者直接get)
使用php内置函数json_decode()解析并处理返回数据
function
ch_json_encode($data)
{
function
ch_urlencode($data)
{
if
(is_array($data)
||
is_object($data))
{
foreach
($data
as
$k
=
$v)
{
if
(is_scalar($v))
{
if
(is_array($data))
{
$data[$k]
=
urlencode($v);
}
elseif
(is_object($data))
{
$data-$k
=urlencode($v);
}
}
elseif
(is_array($data))
{
$data[$k]
=
ch_urlencode($v);//递归调用该函数
}
elseif
(is_object($data))
{
$data-$k
=
ch_urlencode($v);
}
}
}
return$data;
}
$ret
=
ch_urlencode($data);
$ret
=json_encode($ret);
return
urldecode($ret);
}
这个函数对中文支持的好一点,把数组生成json格式,再echo出来
JSON,全称是JavaScript
Object
Notation。它是基于JavaScript编程语言ECMA-262
3rd
Edition-December
1999标准的一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。跟XML相类似,它独立语言,在跨平台数据传输上有很大的优势
新建文件json.php,先做encode操作:
//encode
//生成JSON格式数据
$arr
=
array(1,2,3,4,5,6,7,8,9,'Hello','PHP');
echo
json_encode($arr);//json_encode:把一个对象转换成json格式数据
得到的结果是[1,2,3,4,5,6,7,8,9,"Hello","PHP"]
再来做decode操作:
//decode
解码
$jsonStr
=
'{"h":"Hello","w":"World","0":[3,2,1]}';
$obj
=
json_decode($jsonStr);
echo
$obj-h;//使用成员访问的方式就可以得到结果
知道简单的使用方法后,可以尝试着抓API数据,比如天气...
以上所述就是本文的全部内容了,希望大家能够喜欢。
在PHP中解析JSON主要用到json_encode和json_decode两个PHP
JSON函数,比PHP解析XML方便很多,下面详细介绍下PHP
JSON的使用。
JSON基础介绍
JSON(JavaScript
Object
Notation)
是一种轻量级的数据交换格式。
JSON主要有两种结构:
“名称/值”对的集合,在PHP中可以理解为关联数组
(associative
array)。
值的有序列表(An
ordered
list
of
values)。在PHP中可以理解为普通数组(array)。
对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值'
对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、
null、对象(object)或者数组(array)。这些结构可以嵌套。
我目前对JSON的理解更偏向于数组,类似于PHP中的关联数组,你可以将PHP数组转换为JSON格式。
更多JSON的介绍请参考JSON官网和IBM关于JSON的介绍
PHP
JSON解析实例
PHP5.2开始已经将JSON作为PHP扩展的一部分,所以并不需要另外安装JSON。另外为了保证下面的PHP
JSON实例不出现中文乱码,请保证你的编码格式为UTF8。
JSON是Javascript的一部分,首先我们看下Javascript中如何定义JSON
复制代码
代码如下:
var
json_obj
=
{'WebName':'PHP网站开发教程网'};
alert(json_obj.WebName);
var
json_arr
=[{'WebName':'PHP网站开发教程网','WebSite':''},{'ArtTitle':'PHP
JSON实例讲解'}]
alert(json_arr[1].ArtTitle);
var
php_json
=
[['PHP网站开发教程网',''],['文章标题','PHP
JSON实例讲解']];
alert(php_json[1][0]);
在这段JSON实例代码中我构建了所有的JSON形式,
第1行,定义了JSON以对象形式存在
第4行,定义了JSON以数组形式存在,嵌套了JSON对象,所以有点类似于PHP的关联数组,其实仍然是对象。
第7行,定了JSON以普通数组形式存在。
注意:由于Javascript是区分大小写的,所以访问JSON关联数组对象时注意key的大小写问题。
PHP与JSON格式数据交互时,第一步需要将PHP数组转换为JSON格式的数据,可使用PHP5自带的json_encode函数,当PHP解析传递过来的JSON格式数据时需要使用json_decode函数进行解析转换为PHP数组,PHP转换并解析JSON数据的实例代码如下
复制代码
代码如下:
?php
$json_arr
=
array('WebName'='PHP网站开发教程网','WebSite'='');
$php_json
=
json_encode($json_arr);
echo
$php_json;
$php_json
=
json_decode($php_json);
print_r($php_json);
?
说明:这里通过PHP定义了关联数组,然后通过json_encode转换为JSON格式的数据,通过echo语句可以看到转换后的JSON对象,通过PHP
JSON解析函数json_decode可以将JSON格式的数据解析为PHP的关联数组。如果编码不正确,JSON中文会出现乱码。如果你使用Editplus调试PHP,请注意保存文件时编码将ANSI改为UTF8。
最后我们来看下完整的PHP
JSON交互实例
复制代码
代码如下:
?php
$json_arr
=
array('WebName'='PHP网站开发教程网','WebSite'='');
$php_json
=
json_encode($json_arr);
?
script
type="text/javascript"
var
php_json
=
?=$php_json?;
/script
script
type="text/javascript"
function
php_json_dis(php_json)
{
alert(php_json.WebName);
alert(php_json.WebSite);
}
php_json_dis(php_json);
/script
至此,PHP通过json_encode和json_decode函数对JSON格式数据进行转换和解析的实例就介绍完了。
是调用json数据吧,php中可以用json_encode和json_decode这两个函数来处理json数据