今天同事问我,我们前台是如何传递数据给C,通过什么参数和方法。C又是通过什么机制进行接收前台传递过来的数据。我在代码上瞄了瞄,还是没有搞懂C是如何进行数据处理,这个问题留到后面再讲。接下来讲讲我们前台通过PHP是如何获取C的数据,然后进行页面展示的。
先上一段代码,待会儿再分析:
PHP交互处理流程
参数介绍:POST: submit_post(对应变量名:$post_submit_action)
GET: g(对应变量名:$get_url_param)
通过参数$get_url_param进行交互
模块入口在indexmods文件夹中的.mod文件中,通过参数$get_url_param进行判断,然后加载对应的modules文件夹中的.mds文件,同样是通过参数$get_url_param进行数据交互处理,最后显示在页面上。
简单流程如下:1html --> $get_url_param --> mod --> mds($get_url_param) --> html
通过参数$post_submit_action进行交互
$post_submit_action原理与$get_url_param一样,但是submit_post有的情况不需要通过.mod进行判断,直接在.mds文件中进行处理,最后显示在页面上。
简单流程如下:1html --> $post_submit_action --> mod --> mds($post_submit_action) --> html
数据获取
getResponse()方法:
通过C提供的接口(模块名)和方法获取XML数据。
语法:1$rspString = getResponse('接口名称', '方法', '参数');
接口名称:字符串(C开发人员提供)
方法: 字符串(接口的调用方法,C开发人员提供)
参数: 数组(接口所需要的各个字段,与C开发人员进行对接)
getAssign()方法:
对getResponse()获取的数据进行格式化。
语法:1$rsp_arr = getAssign($rspString, json:0);
json:0 是对数据进行json数据格式化。
代码分析
之前贴的一张图来说:
$param[‘…’]为前台需要获取的字段
$_GET 或者 $_POST是请求方式1file_put_contents('001.txt',json_encode($param));
这个方法是PHP里用于生成数据文件的方法,通过这个方法可以查看从后台获取json格式的数据文件,也可以查看传递给后台json格式的数据文件,以及各种参数。用来调试十分方便。
PHP的isset()函数
一般用来检测变量是否设置
格式:
bool isset ( mixed var [, mixed var [, …]] )
功能:
检测变量是否设置
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
更多说明:
使用 unset() 释放变量之后,它将不再是 isset()。
PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。
检测常量是否已设置可使用 defined() 函数。
PHP的empty()函数
判断值为否为空
格式:bool empty ( mixed var )
功能:检查一个变量是否为空
返回值:
若变量不存在则返回 TRUE
若变量存在且其值为””、0、”0”、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE
若变量存在且值不为””、0、”0”、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE
更多说明:
empty()的返回值=!(boolean) var,但不会因为变量未定义而产生警告信息。参见转换为布尔值获取更多信息。
empty() 只能用于变量,传递任何其它参数都将造成Paser error而终止运行。
检测常量是否已设置可使用 defined() 函数。
json_decode — 对 JSON 格式的字符串进行编码
json_encode — 对变量进行 JSON 编码
json_encode()和json_decode()是编译和反编译过程,注意json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。