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


Posted in PHP onFebruary 10, 2015

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

1.你或许需要一个callback包装这个结果;
2.你或许期望这个json允许跨域请求;
3.你或许期望这个json可以自定义header编码…

{

    "data":1,

    "w":"测试"

}

代码很简单,就不过多描述了。
PHP 相关文章推荐
php xml 入门学习资料
Jan 01 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
PHP实现的带超时功能get_headers函数
Feb 10 #PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 #PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 #PHP
PHP框架Laravel的小技巧两则
Feb 10 #PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 #PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 #PHP
PHP转盘抽奖接口实例
Feb 09 #PHP
You might like
php中文字符截取防乱码
2008/03/28 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
浅谈php://filter的妙用
2019/03/05 PHP
img标签中onerror用法
2009/08/13 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
通过循环优化 JavaScript 程序
2019/06/24 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
pyenv命令管理多个Python版本
2017/03/26 Python
Python书单 不将就
2017/07/11 Python
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
船舶专业个人求职信范文
2014/01/02 职场文书
个人查摆剖析材料
2014/02/04 职场文书
中学生打架检讨书
2014/02/10 职场文书
团代会主持词
2014/04/02 职场文书
投标服务承诺书
2014/05/28 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
作文评语集锦
2014/12/25 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python中if和elif的区别介绍
2021/11/07 Python