PHP制作API接口
2018-06-22 05:32:00来源:未知 阅读 ()
需要单一入口文件,可以使用autoload来加载
1 <?php 2 //获取get参数 3 $m = !empty($_GET['m'])?$_GET['m']:'Index'; 4 $a = !empty($_GET['a'])?$_GET['a']:'index'; 5 6 //引入类库 7 include './Libs/config.php'; 8 include './Libs/Model.class.php'; 9 include './Libs/Auth.php'; 10 include './Libs/Tool.php'; 11 12 //调用方法检测参数是否完整 13 Auth::CheckTime(); 14 Auth::CheckSign(); 15 16 function __autoload($className){ 17 //检测文件是否存在 18 if (file_exists('./Controller/'.$className.'.php')) { 19 include './Controller/'.$className.'.php'; 20 }else if(file_exists('./Libs/'.$className.'.php')){ 21 include './Libs/'.$className.'.php'; 22 }else{ 23 echo '调用的类不存在'; 24 exit; 25 } 26 } 27 $classname = $m.'Controller'; 28 $obj = new $classname; 29 $obj->$a(); 30 ?>
response方法用来返回json数据包
JSON_UNESCAPED_UNICODE:以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)。自 PHP 5.4.0 起生效。
<?php public static function response($errCode,$tips){ $response = array('code'=>$errCode,'msg'=>$tips,'data'=>[]); $res = json_encode($response,JSON_UNESCAPED_UNICODE); echo $res; } ?>
Auth类用来检测传值是否正确,这里用了两个检测参数的方法,第一个用来检测是否超时,第二个用来检测sign是否正确(sign可以保存在数据库中以确保每个用户的sign不一样)
1 <?php 2 class Auth{ 3 public static function CheckTime(){ 4 //判断是否有t参数 5 if (empty($_GET['t'])) { 6 //调用response方法,传入错误码以及提示文字 7 Tool::response('err001','缺少时间参数'); 8 exit; 9 }else if(time()-$_GET['t']>=10){ 10 Tool::response('err002','请求超时'); 11 exit; 12 } 13 } 14 public static function CheckSign(){ 15 //判断是否有sign参数 16 if (empty($_GET['sign']) || $_GET['sign']!='RPGMSonlKKu8ROdF3KyPUdCvnTPdIDx5') { 17 //调用response方法,传入错误码以及提示文字 18 Tool::response('err003','Sign认证失败'); 19 exit; 20 } 21 } 22 } 23 ?>
IndexController,用来作为数据查询返回
1 <?php 2 class IndexController{ 3 public function get($num=""){ 4 $link = mysqli_connect('localhost','root','password') or die("数据库连接失败"); 5 mysqli_select_db($link,'dbname'); 6 mysqli_set_charset($link,'utf8'); 7 if($num!=''){ 8 $sql = "SELECT * FROM content limit=".$num; 9 }else{ 10 $sql = "SELECT * FROM content"; 11 } 12 $data=mysqli_query($link,$sql); 13 mysqli_close($link); 14 //返回值数组 15 $response = array('code'=>'000000','msg'=>'ok','data'=>$data); 16 $res = json_encode($response,JSON_UNESCAPED_UNICODE); 17 echo $res; 18 } 19 } 20 ?>
最后请求地址为:API接口地址?m=index&a=get&num=2&t=time&sign=sign
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:请求头和响应头
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash