天天看點

php接口編寫

<?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;    }

繼續閱讀