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 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
php简单实现sql防注入的方法
Apr 22 PHP
非常经典的PHP文件上传类分享
May 15 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
php-fpm中max_children的配置
Mar 15 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
NumPy 数组使用大全
2019/04/25 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
物业管理个人自我评价
2013/11/08 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
房产公证书范本
2014/04/10 职场文书
中文专业自荐书
2014/06/29 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
水知道答案观后感
2015/06/08 职场文书
2015国庆节感想
2015/08/04 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python