php 自己封装一个调用第三方接口的函数
①在php.ini中开启php_curl扩展(必须开启)
②建议在php.ini中开启php_openssl扩展(本身不是curl必须的,是调用一些第三方接口需要的
③如果以上操作重启apache后,curl还是不能使用,需要将php安装目录设置到环境变量。
//封装 调用外部接口信息函数 if(!function_exists('curl_reuqest')){ function curl_reuqest($url,$type=false,$params=[],$https=false){ // 初始化请求 $ch = curl_init($url); // 判断发送什么请求,默认get请求 if($type){ // 设置请求方式 curl_setopt($ch,CURLOPT_POST ,true); // 设置请求参数 curl_setopt($ch,CURLOPT_POSTFIELDS,$params); } // 如果是https请求,设置禁止从服务器验证本地证书 if($https){ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); } // 发送请求设置以文件流形式返回 curl_setopt($ch,CURLOPT_RETURNTRANSFER ,true); $res = curl_exec($ch); // 调试运行时错误信息,调试完删除 if(!$res){ // 错误信息 $error = curl_error($ch); // 错误码 $error = curl_errno($ch); } // 关闭请求 curl_close($ch); // 返回请求内容 return $res; }
测试代码
<div> {foreach $list as $rows} 快递实时跟踪时间: <span>{$rows['datetime']}</span></br> 地址:<input type="text" name="" id="" value="{$rows['remark']}"><br> {/foreach} </div>
public function index(){ // url地址 $url = "http://v.juhe.cn/exp/index?key=e82ce96ccb085c23faf007a887c8abfc&com=yt&no=806827436235013721"; // 请求方式 get // 发送请求 $res = curl_reuqest($url); // 对结果进行处理 if(!$res){ echo '请求错误';exit; } // 解析返回的数据 json格式的字符串 $arr = json_decode($res,true); if($arr['resultcode'] != 200){ echo $arr['reason'];die; echo '查询失败';die; } // 取出有用的字段 $list = $arr['result']['list']; // 渲染页面 return view('index',['list'=>$list]); }
测试结果
快递实时跟踪时间: 2019-07-09 21:14:57
地址:
快递实时跟踪时间: 2019-07-09 22:09:10
地址:
快递实时跟踪时间: 2019-07-10 02:17:02
地址:
快递实时跟踪时间: 2019-07-10 03:25:52
地址:
快递实时跟踪时间: 2019-07-11 15:12:29
地址: