php远程读取json接口并解析至当前页面

首页 - 技术杂谈 本文发布于2016-10-24 16:12:00

提示:json的API出口数据必须是utf-8编码,处理程序页也建议是utf-8编码,否则执行页容易为空白页。

解析 JSON 数据并且显示在页面中,第一步肯定要先得到 JSON 接口文件的内容。在 PHP 中获取一个页面的内容,可以使用 fopen() 函数远程页面然后使用fread() 函数循环获取内容。

假设接口地址:http://www.guabu.com/api/zatan/

json_sample.php的完整代码如下:

<?php
header('Content-Type: text/html; charset=utf-8');//指定编码
$handle = fopen("http://www.guabu.com/api/zatan/","rb");    //rb表示读取二进制文件
$content = "";
while (!feof($handle)) {	//feof() 函数检测是否已到达文件末尾
    $content .= fread($handle, 10000);    //fread() 从文件里 读取最多 xx 个字节
}
fclose($handle);

$content = json_decode($content);    //json_decode表示对JSON 格式的字符串进行解码
foreach ($content->data as $key) {    //data 对应 json 里 data 参数
    echo '<li><a target="_blank" href="'.$key->b_url.'">'.$key->b_title.'</a> '.$key->b_date.'</li>';
}
?>

php需要先打开这数据文件,然后把所有内容保存到 content 变量中,因为 api 数据不会超过 10000个字符,所以用 10000 作为 fread 函数的第二个参数。这样,api 返回的 JSON 数据就保存在了 content 变量中。

取得 content 值后,就需要对其 JSON  数据处理,然后变成 PHP 可以调用的数据,再使用 foreach 遍历输出循环内容,按照我需要的 HTML 格式,将内容插入进去即可。

程序示例效果见:http://www.guabu.com/jishuzatan/phpschool/json_sample.php

首页 | 吉凶大全 | 星座配对 | 塔罗牌

提示:本站不提供技术解答服务