关于API

因为程序的有些数据我们是无法获取的,所以这些数据如果我们想用的话,必须从网上来找别人的接口来使用,比如像一些权威的数据,例:天气预报,快递的查询,淘宝网里面商品的一些信息等等。可能说这些内容我们自己是无法找到这些数据的,如果想用这些数据的话,必须要从它提供的一个接口里面来获取到数据,比如我们要获取天气预报的数据,这些数据我们要从网上,或者气象局提供的这个接口来获取。所以有些比较专业的数据我们是要从别的地方去取的。这种东西我们在网上把它称作接口。指的是网上提供的数据接口,从网上进行访问来获取到我们想要的数据。这个接口也叫做API。

我们需要给一个网站发一个请求过去,发一个请求过去之后呢还要传入相应的参数,比如说天气预报的,我要获取哪一个城市的天气预报,你必须要把城市当作一个参数发送过去,发送过去之后呢,这个网站经过处理之后把你想要的数据给你返回出来,然后你收到这个返回结果之后就可以去解析返回的数据,并且拿过来使用了。所以说流程就是这样的,一开始我们先发送请求,并且带参数过去然后它接收到参数之后执行完,把数据返回给我们,然后我们再解析数据就可以使用了。

接收到的数据一般来说接口的提供商有两种数据返回的类型。一种数据是JSON数据。另外一种数据是XML数据。也就是接口一般提供的两种返回数据的类型。

<?php
header("content-Type: text/html; charset=Utf-8");


//获取文件内容(除了可以获取本地的还可以获取远程的)
$data = file_get_contents("http://f.apiplus.net/ssq-10.json");

$arr = json_decode($data);


//这个$arr是个option对象。所以需要调用

foreach($arr->data as $v){
    echo $v->opencode."<br>";
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>

<?php
    header("Content-Type:text/html;charset=UTF-8");
    date_default_timezone_set("PRC");
    $showapi_appid = '45822';  //替换此值,在官网的"我的应用"中找到相关值
    $showapi_secret = '3a82573c9fe34500a167607558b95e51';  //替换此值,在官网的"我的应用"中找到相关值
    $paramArr = array(
         'showapi_appid'=> $showapi_appid,
         'areaid'=> "",
         'area'=> "淄博",
         'needMoreDay'=> "",
         'needIndex'=> "",
         'needHourData'=> "",
         'need3HourForcast'=> "",
         'needAlarm'=> ""
         //添加其他参数
    );
     
    //创建参数(包括签名的处理)
    function createParam ($paramArr,$showapi_secret) {
         $paraStr = "";
         $signStr = "";
         ksort($paramArr);
         foreach ($paramArr as $key => $val) {
             if ($key != '' && $val != '') {
                 $signStr .= $key.$val;
                 $paraStr .= $key.'='.urlencode($val).'&';
             }
         }
         $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
         $sign = strtolower(md5($signStr));
         $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
         
         return $paraStr;
    }
     
    $param = createParam($paramArr,$showapi_secret);
    $url = 'http://route.showapi.com/9-2?'.$param; 
    
    $result = file_get_contents($url);
    
    
    $result = json_decode($result);
   
    var_dump($result);
    
    //解析的过程就看显示的结果就行 看见谁调用谁
   
?>   

</body>
</html>
原文地址:https://www.cnblogs.com/shandayuan/p/7496870.html