天天看点

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

继续阅读