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新手用的Insert和Update语句构造类
Mar 31 PHP
PHP错误提示的关闭方法详解
Jun 23 PHP
php生成excel文件的简单方法
Feb 08 PHP
php文件上传简单实现方法
Jan 24 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
PHP下载远程图片并保存到本地方法总结
Jan 22 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP微商城开源代码实例
Mar 27 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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
Phpbean路由转发的php代码
2008/01/10 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
用JavaScript显示随机图像或引用
2009/04/21 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python每天定时运行某程序代码
2019/08/16 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
奖学金申请个人主要事迹材料
2015/11/04 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL