您的位置:首页 > 编程语言 > PHP开发

常用的一些自定义PHP函数

2008-11-10 17:43 288 查看
<?

class useful{

/*

* 常用函数类

/*

* 功能:格式化数字,以标准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;

$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;

}

}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐