您的位置:首页 > Web前端

从此不求人:自主研发一套PHP前端开发框架(9)

2016-03-27 15:32 417 查看

在整个框架中

需要编写一些基本web使用函数来提供整个框架(尤其是V和C)来进行调用,以及第三方接入系统也可以调用

譬如:

1 过滤参数

2 获取当前登录用户(包含基本信息)获取当前用户ip等

3 判断一些状态(如用户是否登录、信息是否过期设置是权限)

4 加密和解密一些字符串

5 获取或设置缓存等

我们把这些函数的命名规则定义一下

1 the_XXX 系列

譬如 the_get(过滤参数) the_ip(获取当前用户ip) the_user(当前登录用户)

2 is_XXX系列

譬如 is_login(是否登录) is_validate(验证码判断)

3 set_XXX系列

用来更新一些model如 set_news($newsModel) 用来更新新闻

4 load_XXX系列

用来加载一些model

….其他我们后面来拓展

打开functions.inc

<?php
// the_XXX系列

/*
* 获取get参数
* 当$ispost是true是代表获取post参数 默认是false
*/
function the_get($get_key,$ispost=false)
{
$parameters=$ispost?$_POST:$_GET;
if(!isset($parameters[$get_key])) return "";
$str=$parameters[$get_key];
//过滤危险字符、敏感字符通用函数
//第一步:通过正则过滤掉我需要过滤的标记
$farr = array(
"/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU");
//过滤类似 <script>  <style> <object>  <meta 等
$str = preg_replace($farr,"",$str);
$str=addslashes($str); //对单引号、双引号等预定义字符 前面加上反斜杠 如'变成\'

//第二步 过滤敏感词汇

$str=str_replace(explode(",", LKPHP_UNSAFEWORDS),"***",$str);
return trim($str);
}
/*
* 获取当前用户的IP地址,无参数
*/
function the_ip()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}

/*
* 获取当前登录用户
* 返回值是个model 如果用户没有登录则返回false
*/
function the_user()
{

//可以使用cookie 也可以使用session
return false;
}

//根据cacheKey或来获得缓存内容
function the_cache($cacheKey)
{
//这里我们使用memcached
return false;
}
?>
<?php
//is_XX系列  如判断用户是否登录 字符串格式

/*
* 判断用户是否登录
*/
function is_login()
{
//用户是否登录
if(the_user()) return true;
return false;
}

//判断字符串是否符合email格式
function is_email($email)
{
return ereg("/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i",$email);
}
?>
<?php
//set_XX系列,譬如更新缓存或者更新一个model

//更新缓存
function set_cache($cacheKey)
{

}
//更新一个model
function set_model($model)
{

}
?>
<?php
//load_XX系列。 譬如加载一个model
/*
* 加载一个model
* $modelName是m名,加载与mvc/model中的某个model
*/
function load_model($modelName)
{

}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: