<?php class useful{ /* * 常用函数类 * 作 者:多菜鸟 * 联系邮箱:kingerq AT msn DOT com * 创建时间:2005-07-18 * 来源:http://blog.csdn.net/kingerq */ /* * 功能:格式化数字,以标准MONEY格式输出 */ function formatnumber($num){ return number_format($num, 2, ".", ","); } /* * 功能:格式化文本,将\n转成 等 * 参数:$string 来源字符串 * 返回:处理后的字符串 */ function formatstring($string = ""){ $string = preg_replace(array("/ /", "/ /"), array(" ", " "), $string); return nl2br($string); } /* * 功能:格式化文本输出 * 参数 $text 为需格式化的文本内容 */ function formatcontent($text){ $trans = get_html_translation_table(HTML_SPECIALCHARS); $trans = array_flip($trans); $text = strtr($text, $trans); //$text = str_replace("\n", " ", $text); //$text = str_replace(" ", " ", $text); return $text; } /* * 将字节转换成Kb或者Mb... * 参数 $num为字节大小 */ function bitsize($num){ if(!preg_match("/^[0-9]+$/", $num)) return 0; $type = array( "B", "KB", "MB", "GB", "TB", "PB" ); $j = 0; while( $num -->= 1024 ) { if( $j >= 5 ) return $num.$type[$j]; $num = $num / 1024; $j++; } return $num.$type[$j]; } /* * 功能:不足3的倍数位的数字,用0补足 * $num 需补充的数字 * 返回补充完整的数字串 */ function prefix($num){ if( strlen( $num ) % 3 == 0 ) { return $this->prefix("0".$num); } return $num; } /* * 功能:连续建目录 * $dir 目录字符串 */ function makedir( $dir, $mode = "0777" ) { if( ! $dir ) return 0; $dir = str_replace( "\\", "/", $dir ); $mdir = ""; foreach( explode( "/", $dir ) as $val ) { $mdir .= $val."/"; if( $val == ".." || $val == "." ) continue; if( ! file_exists( $mdir ) ) { if(!@mkdir( $mdir, $mode )){ echo "创建目录 [".$mdir."]失败."; exit; } } } return true; } /* * 功能:检测时间的正确性 * $date 为时间,例:YYYY-MM-DD * 返回:通过返回true,反之返回false */ function chkdate( $date ) { $d = explode( "-", $date ); if( checkdate( $d[1], $d[2], $d[0] ) ) { return true; }else { return false; } } /* * 防注入处理(为变量加入斜杠)函数 * 参数 $array 为防注入变量数组 */ function add_s(&$array){ foreach($array as $key=>$value){ if(!is_array($value)){ $array[$key]=addslashes($value); }else{ $this->add_s($array[$key]); } } } /* * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码) * 参数 $array 为需转换的字符串或者数组 */ function specialhtml(&$array){ if(is_array($array)){//数组处理 foreach($array as $key=>$value){ if(!is_array($value)){ $array[$key]=htmlspecialchars($value); }else{ $this->specialhtml($array[$key]); } } }else{ $array = htmlspecialchars($array); } } /* * 可以避免乱码的截取汉字 * 参数 $str 为字符串,$start 为开始字符,$len 结束字符 * 返回截取后的字符 */ function msubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; } /* * 功能:综合提示JS代码输出 * 参数 $msg 为提示信息 * $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回 * 输出提示代码并结束程序 */ function alert_msg($msg, $direct = "0"){ switch($direct){ case '0'://提示 $script = ""; case '1'://提示刷新返回 $script = "location.href=\"".$_SERVER["HTTP_REFERER"]."\";"; break; case '2'://提示返回 $script = "history.back();"; break; default://提示转向指定页面 $script = "location.href=\"".$direct."\";"; } echo "<script language="javascript">window.alert('".$msg."');".$script."</script>"; exit; } /* * 功能:取得给定日期所在周的开始日期和结束日期 * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD * $first 一周以星期一还是星期天开始,0为星期天,1为星期一 * 返回:数组array("开始日期", "结束日期"); */ function aweek($gdate = "", $first = 0){ if(!$gdate) $gdate = date("Y-m-d"); $w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6 $dn = $w ? $w - $first : 6;//要减去的天数 $st = date("Y-m-d", strtotime("$gdate -".$dn." days")); $en = date("Y-m-d", strtotime("$st +6 days")); return array($st, $en);//返回开始和结束日期 } /* * 功能:检测页面是否合法连接过来 * 如果为非法,就转向到登陆窗口 */ function checkurl(){ //如果直接从浏览器连接到页面,就连接到登陆窗口 //echo "referer:".$_SERVER['HTTP_REFERER']; if(!isset($_SERVER['HTTP_REFERER'])) { header("location: index.php"); exit; } $urlar = parse_url($_SERVER['HTTP_REFERER']); //如果页面的域名不是服务器域名,就连接到登陆窗口 if($_SERVER["HTTP_HOST"] != $urlar["host"]) { header("location: index.php"); exit; } } /* * 读取文件内容 * 参数 $file 为文件名及完整路径 * 返回文件内容 */ function readfiles($file){ $tdata = ""; $fp = fopen($file, "r"); if(filesize($file) <= 0) return; while($data = fread($fp, filesize($file))){ $tdata .= $data; } fclose($fp); return $tdata; } } ?>