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 在线打包_支持子目录
Jun 28 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
php将session放入memcached的设置方法
Feb 14 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
学习PHP Cookie处理函数
Aug 09 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
PHP7 整型处理机制修改
Mar 09 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微信公众平台开发之微信群发信息
2016/09/13 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
js异步加载的三种解决方案
2013/03/04 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
土木建筑学生自我评价
2014/01/14 职场文书
银行类自荐信
2014/02/04 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
市场总监岗位职责
2015/02/11 职场文书
感恩教育观后感
2015/06/17 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
python 字典和列表嵌套用法详解
2021/06/29 Python
mysql脏页是什么
2021/07/26 MySQL