<?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);
}
//需求:对外提供一个接口,要求在外部输入新闻标题,可以获取到相应的内容,要求提供支持三种格式的接口
//生成接口 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);
}