《PHP編程:PHP實現的簡單mock json腳本分享》要點:
本文介紹了PHP編程:PHP實現的簡單mock json腳本分享,希望對您有用。如果有疑問,可以聯系我們。
PHP教程現在有太多辦法去mock,不過當還是要連接到遠程服務器上測試真正的返回的時候,如果機器上沒有跑node而且有php的話,用這貨來臨時mock一下,或許更輕松.
代碼如下:
<?php
/**
?* Mock Json for Javascript
?*
?* @author soulteary
?* @date 2014-06-15
?*/
?
?
/**
?* 哀求接口字段:字符集
?*/
define('charset','charset');
?
/**
?* 哀求接口字段:回調函數名
?*/
define('callback','callback');
?
/**
?* 哀求接口字段:跨域字段
?*/
define('crossDomain','cross-domain');
?
?
/**
?* 輸出mock數據
?* 如果存在mock.json文件,則數據從mock.js中獲取
?*
?* @return string
?*/
functionmockData()
{
??? if(file_exists('mock.json')){
??????? $data=json_decode(file_get_contents('mock.json'));
??? }else{
??????? $data=Array(
??????????? 'code'=>200,
??????????? 'desc'=>'Get the default data.',
??????????? 'login'=>true,
??????????? 'data'=>Array(
??????????????? 'name'=>'test api.'
??????????? )
??????? );
??? }
??? returnjson_encode($data);
}
?
?
/**
?* 輸出字符集,允許結果為gbk、gb2312、utf-8
?* 如果非法或者未設置,輸出utf-8
?*
?* @return string
?*/
functioncharset()
{
??? $ret='utf-8';
??? if(empty($_REQUEST[charset])){
??????? return$ret;
??? }else{
??????? $charset=strtolower($_REQUEST[charset]);
??????? if(in_array($charset,array('gbk','gb2312'),true)){
??????????? return$charset;
??????? }else{
??????????? return$ret;
??????? }
??? }
}
?
?
/**
?* 拼裝json數據
?*
?* @return string
?*/
functionjsonGenerator()
{
??? if(!empty($_REQUEST[callback])){
??????? header('Content-Type: application/javascript; charset='.charset());
??????? return$_REQUEST[callback]."(".mockData().");";
??? }else{
??????? if(!empty($_REQUEST[crossDomain])){
??????????? header("Access-Control-Allow-Origin: *");
??????? };
??????? header('Content-type: application/json; charset='.charset());
??????? returnmockData();
??? }
}
?
/**
?* 輸出結果
?*/
die(jsonGenerator());
PHP教程如果你不想改動php里的data object,覺得麻煩,那么直接改動json好了,你或許會問,那我為啥不直接訪問一個json呢,答:
PHP教程1.你或許需要一個callback包裝這個結果;
2.你或許期望這個json允許跨域哀求;
3.你或許期望這個json可以自定義header編碼…
代碼如下:
{
??? "data":1,
??? "w":"測試"
}
代碼很簡單,就不外多描述了.
維易PHP培訓學院每天發布《PHP編程:PHP實現的簡單mock json腳本分享》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.fzlkiss.com/jiaocheng/12426.html