需要單一入口文件,可以使用autoload來載入 response方法用來返回json數據包 JSON_UNESCAPED_UNICODE:以字面編碼多位元組 Unicode 字元(預設是編碼成 \uXXXX)。自 PHP 5.4.0 起生效。 Auth類用來檢測傳值是否正確,這裡用了兩個檢測參數的方 ...
需要單一入口文件,可以使用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