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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php制作文本式留言板
Mar 18 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 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世纪万年历
2006/12/06 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
详解使用webpack构建多页面应用
2017/12/21 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
js实现中文实时时钟
2020/01/15 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
python使用append合并两个数组的方法
2015/04/28 Python
python3 读取Excel表格中的数据
2018/10/16 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
物业管理求职自荐信
2013/09/25 职场文书
考博专家推荐信模板
2013/12/02 职场文书
总经理秘书的岗位职责
2013/12/27 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
三方股东合作协议书
2014/10/28 职场文书
读书笔记怎么写
2015/07/01 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python