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 相关文章推荐
加强版phplib的DB类
Mar 31 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
PHP入门之常量简介和系统常量
May 12 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
PHP dirname简单使用代码实例
Nov 13 PHP
PHP中多字节字符串操作实例详解
Aug 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
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
django的登录注册系统的示例代码
2018/05/14 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
自荐信格式范文
2013/10/07 职场文书
师范应届生求职信
2013/11/15 职场文书
建筑人员岗位职责
2013/12/25 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
给国外客户的邀请函
2014/01/30 职场文书
车间主任岗位职责
2014/03/16 职场文书
网络技术专业求职信
2014/07/13 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
Python Flask实现进度条
2022/05/11 Python