公共资源类的封装

Posted 满血复活的回来写代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了公共资源类的封装相关的知识,希望对你有一定的参考价值。

<?php
/***公共资源类****/
class Common {
    /**
    * 通用的json返回数据
    * $code int  返回的错误码
    * $msg  string 返回的错误信息
    * $data array 返回的数组
    */
    public static function EchoResult($code = 0 , $msg = ‘‘ , $data = array() ){
        $result = array(
            code => $code ,
            msg => $msg ,
            data => $data
        );
        echo json_encode($result ,  JSON_UNESCAPED_UNICODE);
        exit;
    }
    /**
    * 处理form 提交的参数过滤
    * $string   string  需要处理的字符串或者数组
    * @return   string 返回处理之后的字符串或者数组
    */
    public static function Dtrim($string){
        if(is_array($string)) {
            $keys = array_keys($string);
            foreach($keys as $key) {
                $val = $string[$key];
                unset($string[$key]);
                $string[trim($key)] = self::Dtrim($val);
            }
        } else {
            $string = trim($string);
        }
        return $string;
    }
    /**
    * 处理form 提交的参数过滤
    * $string   string  需要处理的字符串或者数组
    * $force    boolean  强制进行处理
    * @return   string 返回处理之后的字符串或者数组
    */
    public static function Daddslashes($string, $force = 1) {
        if(is_array($string)) {
            $keys = array_keys($string);
            foreach($keys as $key) {
                $val = $string[$key];
                unset($string[$key]);
                $string[addslashes($key)] = self::daddslashes($val, $force);
            }
        } else {
            $string = addslashes($string);
        }
        return $string;
    }
    //请参考php内置的方法 htmlspecialchars
    public static function Dhtmlspecialchars($string, $flags = ENT_COMPAT) {
        if(is_array($string)) {
            foreach($string as $key => $val) {
                $string[$key] = self::dhtmlspecialchars($val, $flags);
            }
        } else {
            if($flags === null) {
                $string = str_replace(array(&, ", <, >), array(&amp;, &quot;, &lt;, &gt;), $string);
                if(strpos($string, &amp;#) !== false) {
                    $string = preg_replace(/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4}));)/, &\\1, $string);
                }
            } else {
                if(PHP_VERSION < 5.4.0) {
                    $string = htmlspecialchars($string, $flags);
                } else {
                    $charset = UTF-8;
                    $string = htmlspecialchars($string, $flags, $charset);
                }
            }
        }
        return $string;
    }
    //请参考 php 内置方法 stripslashes
    public static function Dstripslashes($string) {
        if(empty($string)) return $string;
        if(is_array($string)) {
            foreach($string as $key => $val) {
                $string[$key] = self::dstripslashes($val);
            }
        } else {
            $string = stripslashes($string);
        }
        return $string;
    }
    /*
    *   函数名称:VerifyId()
    *   函数作用:校验提交的ID类值是否合法
    *   参  数:$id: 提交的ID值
    *   返 回 值:返回处理后的ID
    *
    */
    public static function VerifyId($id=null) {
        if (!$id) {
            return 0;
        } // 是否为空判断
        elseif (self::inject_check($id)) {
            return 0;
        } // 注射判断
        elseif (!is_numeric($id)) {
            return 0 ;
        } // 数字判断
        $id = intval($id); // 整型化
        return $id;
    }
    /*
     *检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
    *参  数:$sql_str: 提交的变量
    *返 回 值:返回检测结果,ture or false
    */
    public static function InjectCheck($sql_str) {
        return @eregi(select|insert|and|or|update|delete|\‘|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile, $sql_str); // 进行过滤
    }                        
    /**
     * 导入文件并且进行实例化 ,默认导入的是business这个文件夹下面的文件
     * $filename       string $layer 模型层名称
     * return object
     */
    public static function ImportBusiness($name = null  ){
        $layer = "business";
        $class=$name.ucfirst($layer);
        static $_obj=array();
        if(isset($_obj[$name])){
            return $_obj[$name];
        }
        if(!file_exists(APP_PATH."/application/{$layer}/{$class}.php")){
            exit("file {$class}.php is not exists ");
        }
        Yaf_loader::import(APP_PATH."/application/business/{$class}.php");//导入类库(业务逻辑类库之类的)
        $_obj[$name] = new $class();
        return $_obj[$name];
    }    
    
    /**
     * 导入文件并且进行实例化 ,默认导入的是business这个文件夹下面的文件
     * $filename       string $layer 模型层名称
     * return object
     */
    public static function ImportmodulesBusiness($name = null,$modules = null  ){
        $layer = "business";        
        $class=$name.ucfirst($layer);
        static $_obj=array();
        if(isset($_obj[$name])){
            return $_obj[$name];
        }
        if(!file_exists(APP_PATH."/application/modules/{$modules}/{$layer}/{$class}.php")){
            exit("file {$class}.php is not exists ");
        }
        Yaf_loader::import(APP_PATH."/application/modules/{$modules}/business/{$class}.php");//导入类库(业务逻辑类库之类的)
        $_obj[$name] = new $class();
        return $_obj[$name];
    }        
    
}

 

以上是关于公共资源类的封装的主要内容,如果未能解决你的问题,请参考以下文章

一个队asp.net session进行了再次封装的C#类的代码

1类的封装

封装公共js,使其他页面可以调用

面向对象(三大特性)

head标签怎么给多个html引用

VSCode自定义代码片段14——Vue的axios网络请求封装