<?
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转成<br>等
* 参数: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”, “<br>”, text);
//text = str_replace(” “, “ ”, text);
return text;
}
/*
* 将字节转换成Kb或者Mb
* 参数 num为字节大小
*/
function bitsize(num){
if(!preg_match(“/^[0-9]+/”, num)) return 0;
return num > 1024 ? (num/1024 > 1024 ? round(num/1024/1024, 2).” Mb” : round(num/1024, 2).” Kb”) : num.” 字节”;
}
/*
* 防注入处理(为变量加入斜杠)函数
* 参数 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=\\”"._SESSION["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:”._SESSION[\'HTTP_REFERER\'];
if(!isset(_SESSION[\'HTTP_REFERER\'])) {
header(“location: index.php”);
exit;
}
urlar = parse_url(_SESSION[\'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;
}
}
?>