预定义变量
文章分页:

myReq.class.php 用于处理 get, post, request, file, cookie, session, server, env, globals 等各类系统预定义变量,以及相关服务器交互响应,该类相关方法均可以静态调用。

变量调用

可以通过静态方法直接调用相关预定义变量,如 myReq::get('para_name')myReq::server('query_string') 等,其中server项下变量名称会自动转换为大写。如果传入参数为“[ALL]”,则返回对应预定义变量的所有子项(如:myReq::POST('[ALL]'))。

此外,为保证系统安全,避免注入攻击,可以在获取变量时设置第二个格式参数,此参数可设置项目如下:

1 int 整数型
2 url 标准网址(不含协议名)
3 char 数字加字母组合
4 str 默认值,任意字符串,但将过滤掉 eval 等敏感字符,并进行html实体转换
5 函数名 用于检测数据合法性的自定义函数
6 正则式 用于检测数据合法性的正则表达式

为便于开发,本类默认别名定义如下:

$func_alias = array(  

    'g' => 'get',  

    'p' => 'post',  

    'f' => 'files',  

    'r' => 'request',  

    'c' => 'cookie',  

    's' => 'session',  

    'e' => 'env',  

    'svr' => 'server',  

    'gl' => 'globals',  

);

也就是 r::g('name‘) 等效于 myReq::get('name')r::svr('query_string’) 等效于 myReq::server('QUERY_STRING') ,其中 r 为 myReq 的别名,和方法别名均可通过系统后台设置,相关设置请见专题介绍。

 

Cookie处理
初始化

首先需要通过 setCookieOpt 方法,初始化 cookie 相关参数,参数为一个设置信息数组,包含以下元素:

1 path cookie生效的路径,相对于网站根,默认为“/”
2 domain cookie生效的域名,如为空则默认为当前域名,如需跨二级域,需要设置为“.”加主域名的方式
3 prefix cookie前缀,为避免不同应用或域名下的名称冲突,针对每个cookie名称都将加上此前缀,设置好后,cookie操作直接使用定义名称即可,本类会自动处理前缀操作

初始化代码如下:

myReq::setCookieOpt([  

    'path' => '/',  

    'prefix' => ‘pre’  

]);
添加cookie

设置方法为:

myReq::setCookie($name, $value, $expire, $path, $domain, $httponly);  

myReq::setCookie_nopre($name, $value, $expire, $path, $domain, $httponly);

其中第二个方法为设置取不带前缀的cookie,以便于某些特殊需要。对应参数意义如下:

1 $name cookie名称,必填项
2 $value cookie内容
3 $expire 过期时间,默认为零,如小于等于0,则表示删除当前名称的cookie
4 $path cookie作用路径,如为空则依照初始化参数
5 $domain cookie作用域名,如为空则依照初始化参数
6 $httponly  仅限于后台读取,无法被客户端javascript等脚本读取
删除cookie

删除cookie有三种方式,如下:

myReq::setCookie($name);           // 用于删除带前缀的cookie  

myReq::setCookie_nopre($name);     // 用于删除无前缀的cookie  

myReq::removeCookie($name, $pre);   // $pre 为 bool 值,表示是否带前缀
读取cookie

读取 cookie,如同本节开头所述,代码为:myReq::cookie('name')

 

Session处理
初始化

首先需要通过setSessionOpt 方法,初始化 session 相关参数,sessionStart参数为一个设置信息数组,包含以下元素:

1 id 非必选项,自行设置session_id,可以实现不同电脑共享session,如不了解不建议设置
2 expire session 过期时间,单位是分钟,默认是30
3 gc 是否进行定期过期资源回收,默认是 false
4 trans_sid 是否在网址中传递 session ID,默认是 false,如非必要不建议设置为 true
5 name 非必选项,用于把 session ID 存储在cookie中的cookie名称
6 path 设置session以文件存贮时的存储目录
启动及停止

启动 session 的方法为:myReq::sessionStart($handle, $httponly) ,其中 $handle 为一个包含 open, close, read, write, destroy, gc 等六个静态方法的类名,如为空则由PHP系统管理session;$httponly 默认值为 true,即保证存储于cookie中的 session ID 只能在服务器端读取到。

重启 session 的方法为:myReq::sessionRestart($id, $delete_old_session) ,其中 $id 默认为空,即由PHP系统自动生成ID,如设置请参考初始化中的id属性;$delete_old_session 用于表明是否删除原有 session 信息,默认为 true。

关闭 session 的方法为:myReq::sessionEnd() ,本方法无参数,执行后将删除所有当前 session 信息。  

读取与设置

读取 session,如同本节开头所述,代码为:myReq::session('name') ,如果传递第二个参数,则表示设置以第一个参数为名称的session,其值为第二个参数,即:myReq::session('name', 'value') 。需要补充的是,如果两个参数都没有测试,则将返回整个 session 编码,可参考 session_encode()

删除 session 的方法为:myReq::removeSession(‘name’) ,将删除指定名称的 session 。

本类还提供一个批量设置 session 的方法:myReq::setSessions($data) ,通过此方法可以立即将某类身份分配或转移给某个访客,其中 $data 参数为 session 编码,可通过myReq::session() 获取。

编码解码

针对session存储源码,本类还提供了解码和编码的方法,即 myReq::sessionDecode($str) 和 myReq::sessionEncode($array) ,可以方便地将session源码转为数据,或将数组转为session源码,以便于各类高级应用。 

 

其他功能
1 check 检测某个预定义变量是否存在,并返回其子变量个数,参数为预定义变量名称(不含下划线,小写即可)
2 ip 获取客户点IP,无参数
3 ping 检测某IP是否可以联通,并返回响应时间,参数是IP:PORT,其中端口默认是80,参数二用户获取响应信息
4 pingURL 检测某网址是否可以联通,并返回响应时间,参数是网址,参数二用户获取响应信息

 

上一篇:设置管理
下一篇:数据库操作