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之第八天
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
PDO::prepare讲解
Jan 29 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
JS查看对象功能代码
2008/04/25 Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
js实现滑动滑块验证登录
2020/07/24 Javascript
python实现猜数字小游戏
2020/03/24 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
Why we need EJB
2016/10/20 面试题
final, finally, finalize的区别
2012/03/01 面试题
学校四群教育实施方案
2014/06/12 职场文书
团代会邀请函
2015/02/02 职场文书
2015年售后服务工作总结
2015/04/25 职场文书