工具/原料
php curl扩展库
方法/步骤1创建一个获取json并解析为对象返回的公共方法,这里打印出URL和状态码,http_code返回200的才是正常的:
function get_json_decode($params = '') {
$MY_BASE_URL = ";;
// 初始化curl
$ch = curl_init ();
$url = $MY_BASE_URL . $params;
echo "<br>url==" . $url;
// 设置URL参数
curl_setopt ( $ch, CURLOPT_URL, $url );
// 设置cURL允许执行的最长秒数
curl_setopt ( $ch, CURLOPT_TIMEOUT, 5 );
// 要求CURL返回数据
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
// 执行请求
$result = curl_exec ( $ch );
// 获取http状态
$http_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
echo "<br>http_code==" . $http_code;
if ($http_code != 200) {
// 失败返回空数组
return array();
}
// 取得返回的结果,并显示
// print_r(json_decode($result));
// 取得返回的结果,转换成对象
$data = json_decode ( $result );
// 关闭CURL
curl_close ( $ch );
return $data;
}
在Controllers里面get_json_test方法调用get_json_decode 并返回到view界面使用:
function get_json_test($params = "") {
$getdata = get_json_decode($params);
$data["response"] = $getdata;
$this->load->view('apiview',$data);
}
在view中调用返回的对象解析显示,页面编码一定要用utf-8:
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<DIV class=content_L_column>
<?php
echo "==================<br>";
print_r($response);
echo "------------------<br>";
foreach($response as $row){
echo $row->{"myword"};
}
?>
注意事项页面编码一定要用utf-8
http_code返回200的才是正常的