《PHP編程:PHP實(shí)現(xiàn)的簡單mock json腳本分享》要點(diǎn):
本文介紹了PHP編程:PHP實(shí)現(xiàn)的簡單mock json腳本分享,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP教程現(xiàn)在有太多辦法去mock,不過當(dāng)還是要連接到遠(yuǎn)程服務(wù)器上測(cè)試真正的返回的時(shí)候,如果機(jī)器上沒有跑node而且有php的話,用這貨來臨時(shí)mock一下,或許更輕松.
代碼如下:
<?php
/**
?* Mock Json for Javascript
?*
?* @author soulteary
?* @date 2014-06-15
?*/
?
?
/**
?* 哀求接口字段:字符集
?*/
define('charset','charset');
?
/**
?* 哀求接口字段:回調(diào)函數(shù)名
?*/
define('callback','callback');
?
/**
?* 哀求接口字段:跨域字段
?*/
define('crossDomain','cross-domain');
?
?
/**
?* 輸出mock數(shù)據(jù)
?* 如果存在mock.json文件,則數(shù)據(jù)從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);
}
?
?
/**
?* 輸出字符集,允許結(jié)果為gbk、gb2312、utf-8
?* 如果非法或者未設(shè)置,輸出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數(shù)據(jù)
?*
?* @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();
??? }
}
?
/**
?* 輸出結(jié)果
?*/
die(jsonGenerator());
PHP教程如果你不想改動(dòng)php里的data object,覺得麻煩,那么直接改動(dòng)json好了,你或許會(huì)問,那我為啥不直接訪問一個(gè)json呢,答:
PHP教程1.你或許需要一個(gè)callback包裝這個(gè)結(jié)果;
2.你或許期望這個(gè)json允許跨域哀求;
3.你或許期望這個(gè)json可以自定義header編碼…
代碼如下:
{
??? "data":1,
??? "w":"測(cè)試"
}
代碼很簡單,就不外多描述了.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP編程:PHP實(shí)現(xiàn)的簡單mock json腳本分享》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12426.html