生成接口 XML、json、jsonp

<?php
   //需求:对外提供一个接口,要求在外部输入新闻标题,可以获取到相应的内容,要求提供支持三种格式的接口
   //生成接口  XML、json、jsonp
   /*
   说明:
     1、接口地址http://www.study.com/seven7/1410phpB/20160726/app.php
2、请求方式 get
3、支持的数据格式 xml/json/jsonp
     4、参数说明
        title   必须     用户要获取的条件参数
        type    可选     xml/json/jsonp 默认为json
        key     必填     用户申请该接口时生成的秘钥
        callback  可选   获取jsonp数据的时候必填
5、接口案例
  json实例:
   http://www.study.com/seven7/1410phpB/20160726/app.php?title=你好&key=88888888
  xml实例:
  http://www.study.com/seven7/1410phpB/20160726/app.php?title=你好&key=88888888&type=xml
  jsonp实例:
  http://www.study.com/seven7/1410phpB/20160726/app.php?title=你好&key=88888888&type=jsonp&callback=data
   */




   //第一步  判断秘钥
   $token='8888888888888888888';  //用户申请接口成功后的key值,假设我们是直接session中取出来,就是用户申请时存进去
   $key=$_GET['key'];  //接收用户传递的秘钥
   $type=isset($_GET['type']) ?  $_GET['type'] : 'json'; //接收用户要获取的数据的格式
   $condition=$_GET['title'];
   //判断用户是否是正常访问
   if($token!=$key){
     echo '请输入正确的key值';
     die;
   }
   $pdo=new PDO('mysql:host=localhost;dbname=test','root','root');
   $pdo->exec('set names utf8');
   $data=$pdo->query("select * from news where title like '%$condition%'")->fetchAll(PDO::FETCH_ASSOC);
    if($type=='xml'){
  //1)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>'.$v['content'].'</content>';
     echo '</new>';
  }
  echo '</news>';
}elseif($type=='jsonp'){
header('content-type:text/json');
  //2)jsonp格式
   $str=json_encode($data); //把数组转换json格式的字符串,用户回调函数返回数据
$callback=$_GET['callback']; //接收回调函数的名称
echo $callback."(".$str.")";
}else{
  //3)json格式
  echo json_encode($data);
}
  
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值