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