• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现的简单mock json脚本分享_PHP

php 搞代码 4年前 (2022-01-25) 15次浏览 已收录 0个评论

现在有太多方法去mock,不过当还是要连接到远程服务器上测试真正的返回的时候,如果机器上没有跑node而且有php的话,用这货来临时mock一下,或许更轻松。

<br /><?php<br />/**<br /> * Mock Json for Javascript<br /> *<br /> * @author soulteary<br /> * @date 2014-06-15<br /> */<br /> <br /> <br />/**<br /> * 请求接口字段:字符集<br /> */<br />define('charset','charset');<br /> <br />/**<br /> * 请求接口字段:回调函数名<br /> */<br />define('callback','callback');<br /> <br />/**<br /> * 请求接口字段:跨域字段<br /> */<br />define('crossDomain','cross-domain');<br /> <br /> <br />/**<br /> * 输出mock数据<br /> * 如果存在mock.json文件,则数据从mock.js中获取<br /> *<br /> * @return string<br /> */<br />functionmockData()<br />{<br />    if(file_exists('mock.json')){<br />        $data=json_decode(file_get_contents('mock.json'));<br />    }else{<br />        $data=Array(<br />            'code'=>200,<br />            'desc'=>'Get the default data.',<br />            'login'=>true,<br />            'data'=>Array(<br />                'name'=>'test api.'<br />            )<br />        );<br />    }<br />    returnjson_encode($data);<br />}<br /> <br /> <br />/**<br /> * 输出字符集,允许结果为gbk、gb2312、utf-8<br /> * 如果非法或者未设置,输出utf-8<br /> *<br /> * @return string<br /> */<br />functioncharset()<br />{<br />    $ret='utf-8';<br />    if(empty($_REQUEST[charset])){<br />        return$ret;<br />    }else{<br />        $charset=strtolower($_REQUEST[charset]);<br />        if(in_array($charset,array('gbk','gb2312'),true)){<br />            return$charset;<br />        }else{<br />            return$ret;<br />        }<br />    }<br />}<br /> <br /> <br />/**<br /> * 拼装json数据<br /> *<br /> * @return string<br /> */<br />functionjsonGenerator()<br />{<br />    if(!empty($_REQUEST[callback])){<br />        header('Content-Type: application/javascript; charset='.charset());<br /><span style="color:transparent">~来1源gaodai#ma#com搞*代#码1网</span><abbr>搞代gaodaima码</abbr>        return$_REQUEST[callback]."(".mockData().");";<br />    }else{<br />        if(!empty($_REQUEST[crossDomain])){<br />            header("Access-Control-Allow-Origin: *");<br />        };<br />        header('Content-type: application/json; charset='.charset());<br />        returnmockData();<br />    }<br />}<br /> <br />/**<br /> * 输出结果<br /> */<br />die(jsonGenerator());<br />

如果你不想改动php里的data object,觉得麻烦,那么直接改动json好了,你或许会问,那我为啥不直接访问一个json呢,答:

1.你或许需要一个callback包装这个结果;
2.你或许期望这个json允许跨域请求;
3.你或许期望这个json可以自定义header编码…

<br />{<br />    "data":1,<br />    "w":"测试"<br />}<br />

代码很简单,就不过多描述了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现的简单mock json脚本分享_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址