php mock,PHP实现的简单mock json脚本分享

现在有太多方法去mock,不过当还是要连接到远程服务器上测试真正的返回的时候,如果机器上没有跑node而且有php的话,用这货来临时mock一下,或许更轻松。

/**

* 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里的data object,觉得麻烦,那么直接改动json好了,你或许会问,那我为啥不直接访问一个json呢,答:

1.你或许需要一个callback包装这个结果;

2.你或许期望这个json允许跨域请求;

3.你或许期望这个json可以自定义header编码…

{

"data":1,

"w":"测试"

}

代码很简单,就不过多描述了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值