<?php //生成接口 支援三種格式 xml/json/jsonp //需求:對外提供一個通過标題可以查詢新聞内容的接口
//接口說明:通過标題擷取内容 //請求執行個體位址:http://localhost/20160801/api.php //請求方式: get //請求參數說明: // 名稱 類型 必填 說明 // title string 是 需要查詢新聞的标題 // key string 是 應用APPKEY(應用詳細頁查詢) // dtype string 否 傳回資料的格式,xml或json或jsonp,預設json // jsoncallback string 否 傳回jsonp格式時必須傳遞的回調函數的參數名
//書寫接口第一步 //1接收參數 $title=$_GET['title']; $key=$_GET['key']; $dtype=isset($_GET['dtype']) ? $_GET['dtype'] : 'json'; $token="111"; //使用者在申請接口時産生的(redis、資料庫、mongoDB、session) //2 判斷 if($key!=$token){ echo '非法請求'; die; } //3擷取資料 $pdo=new PDO('mysql:host=localhost;dbname=test','root','root'); $pdo->exec('set names utf8'); $sql="select * from news where title like '%$title%'"; $data=$pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); if($dtype=='xml'){ //xml header("content-type:text/xml;charset=utf-8"); echo "<?xml version='1.0' encoding='utf-8' ?>"; echo "<news>"; foreach($data as $v){ echo "<new>"; echo "<title>".$v['title']."</title>"; echo "<content>"."<![CDATA[".$v['content']."]]>"."</content>"; echo "</new>"; } echo "</news>"; }elseif($dtype=='jsonp'){ //jsonp //接收回調函數值 $callback=$_GET['jsoncallback']; $str=json_encode($data); //轉換為json字元串 echo $callback."(".$str.")"; }else{ //json $str=json_encode($data); //轉換為json字元串 echo $str; }