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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php产生随机数的两种方法实例代码 输出随机IP
Apr 08 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
linux下安装php的memcached客户端
Aug 03 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
Laravel 实现密码重置功能
Feb 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
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
python中list循环语句用法实例
2014/11/10 Python
python与php实现分割文件代码
2017/03/06 Python
python的re正则表达式实例代码
2018/01/24 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python retrying模块的使用方法详解
2019/09/25 Python
python实现大量图片重命名
2020/03/23 Python
Python表达式的优先级详解
2020/02/18 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
Python Http请求json解析库用法解析
2020/11/28 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
社区学习十八大感想
2014/01/22 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Oracle用户管理及赋权
2022/04/24 Oracle