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

在整个框架中

需要编写一些基本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)
 {

 }

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值