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 array_flip() 删除数组重复元素
Jan 14 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
php四种基础算法代码实例
Oct 29 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
简单谈谈favicon
Jun 10 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 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 cache类代码(php数据缓存类)
2010/04/15 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python实现八大排序算法
2016/08/13 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
Python实现Restful API的例子
2019/08/31 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
婚前财产公证书
2014/04/10 职场文书
初中生期末评语大全
2014/04/24 职场文书
环境整治工作方案
2014/05/18 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
公务员政审材料范文
2014/12/23 职场文书
门球健将观后感
2015/06/16 职场文书
中学团支部工作总结
2015/08/13 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python