公共资源类的封装
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(‘&‘, ‘"‘, ‘<‘, ‘>‘), $string); if(strpos($string, ‘&#‘) !== false) { $string = preg_replace(‘/&((#(\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]; } }
以上是关于公共资源类的封装的主要内容,如果未能解决你的问题,请参考以下文章