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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php 缓存函数代码
Aug 27 PHP
PHP session会话的安全性分析
Sep 08 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
PHP实现的json类实例
Jul 28 PHP
PHP发送短信代码分享
Aug 11 PHP
php while循环控制的简单实例
May 30 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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
咖啡语言
2021/03/03 咖啡文化
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python阶乘求和的代码详解
2020/02/14 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
应届生财务管理求职信
2013/11/06 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
2014年教师思想工作总结
2014/12/03 职场文书