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代码收集表单内容并写入文件的代码
Jan 29 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
php存储过程调用实例代码
Feb 03 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
php学习笔记之面向对象
Nov 08 PHP
php查询ip所在地的方法
Dec 05 PHP
两个php日期控制类实例
Dec 09 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php设计模式之单例模式代码
2016/06/11 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
对命令行模式与python交互模式介绍
2018/05/12 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Django choices下拉列表绑定实例
2020/03/13 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
物业总经理岗位职责
2014/02/28 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
写给老婆的保证书
2015/02/27 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
大学运动会加油稿
2015/07/22 职场文书
感恩教师主题班会
2015/08/12 职场文书