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;
   }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值