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 print EOF实现方法
May 21 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
PHP禁止个别IP访问网站
Oct 30 PHP
php调用google接口生成二维码示例
Apr 28 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
Symfony2联合查询实现方法
Mar 18 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
如何在PHP中读写文件
Sep 07 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 冲泡冲煮
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
yii中widget的用法
2014/12/03 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue 中的keep-alive实例代码
2018/07/20 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
详解python算法之冒泡排序
2019/03/05 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
Python的pygame安装教程详解
2020/02/10 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
财务会计自荐信范文
2014/02/21 职场文书
爱心捐款倡议书
2014/04/14 职场文书
关于读书的演讲稿
2014/05/07 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
2015年中个人总结范文
2015/03/10 职场文书
中标通知书
2015/04/17 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python