function.php
点击数:80 | 回复数:1 | 最后回复发表于2009.06
1楼

- 220.175.116.*
- 发表于 2009.06.28 14:26:36
<?php
function template($htmlFile)
{
$template = new phpSayTemplate($htmlFile);
return $template;
}
function checkVisitorDomain()
{
global $site_domain;
if( $_SERVER['SERVER_NAME'] != $site_domain )
{
$urlSelf = "";
if( isset($_SERVER['PHP_SELF']) && !empty($_SERVER['PHP_SELF']) && $_SERVER['PHP_SELF'] != "/index.php" )
{
$urlSelf .= $_SERVER['PHP_SELF'];
}
if( isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) && !empty($urlSelf) )
{
$urlSelf .= "?".$_SERVER['QUERY_STRING'];
}
header("HTTP/1.1 301 Moved Permanently");
header("location:http://".$site_domain.$urlSelf);
ob_end_flush();
exit;
}
}
function loginCookie($uid,$name,$group,$ip,$time)
{
global $login_key;
$secure = Xxtea::encrypt($uid."|".$name."|".$group."|".$ip,$login_key);
@setcookie("userId",$uid,$time+86400,"/");
@setcookie("userName",$name,$time+86400,"/");
@setcookie("userGroup",$group,$time+86400,"/");
@setcookie("userSecure",$secure,$time+86400,"/");
}
function isLogin()
{
global $login_key;
if( isset($_COOKIE['userId'],$_COOKIE['userName'],$_COOKIE['userGroup'],$_COOKIE['userSecure']) )
{
$Sc = explode("|",Xxtea::decrypt($_COOKIE['userSecure'],$login_key));
if( isset($Sc[0],$Sc[1],$Sc[2]) )
{
if( $_COOKIE['userId'] == $Sc[0] && $_COOKIE['userName'] == $Sc[1] && $_COOKIE['userGroup'] == $Sc[2] )
{
return true;
}
}
}
return false;
}
function createSecureKey($len)
{
$chararr = array('2','3','4','5','6','7','8','9','~','a','b','C','d','e','f','h','j','K','L','M','n','P','Q','R','s');
$keyindex = count($chararr)-1;
$keystr = "";
for ( $i=0;$i<$len;$i++ )
{
$keystr .= $chararr[rand(0,$keyindex)];
}
return $keystr;
}
function GetRealClientIP()
{
if( getenv("HTTP_X_CLUSTER_CLIENT_IP") && strcasecmp(getenv("HTTP_X_CLUSTER_CLIENT_IP"), "unknown") )
$ip_real = getenv("HTTP_X_CLUSTER_CLIENT_IP");
else if( getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown") )
$ip_real = getenv("HTTP_X_FORWARDED_FOR");
else if( getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown") )
$ip_real = getenv("REMOTE_ADDR");
else if( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown") )
$ip_real = $_SERVER['REMOTE_ADDR'];
else
$ip_real = "unknown";
$ip_arr = explode(",",$ip_real);
if( empty($ip_arr[1]) )
$client_ip = trim($ip_arr[0]);
else
$client_ip = trim($ip_arr[1]);
return $client_ip;
}
function emailcheck($email)
{
$ret=false;
if(strstr($email, '@') && strstr($email, '.')){
if(eregi("^([_a-z0-9]+([._a-z0-9-]+)*)@([a-z0-9]{1,}(.[a-z0-9-]{2,})*.[a-z]{2,4})$", $email)){
$ret=true;
}
if(strlen($email) < "8" || strlen($email) > "80") {
$ret=false;
}
}
return $ret;
}
function wordCheck($str)
{
$bArr = explode("_","!_@_#_$_%_^_&_*_(_)_._-_+_=_ˇ_¨_·_/__<_>_?_{_}_[_]_|_,_ _ __。_;_:_?_,_;_:_'_"_~_`");
for($i=0;$i<count($bArr);$i++)
{
if( strpos($str,$bArr[$i]) || $str{0} == $bArr[$i] )
return false;
}
return true;
}
function usernameCheck($username)
{
$username_len = getStrlen($username);
if( $username_len < 2 )
{
return "昵称至少2个字符。";
}
if( is_numeric($username{0}) || $username{0} == "_" )
{
return "昵称不能以数字和下划线开头。";
}
if( !wordCheck($username) )
{
return "昵称不能含有非法字符。";
}
if( preg_match("/^[x7f-xff]+$/",$username) )
{
if( $username_len > 7 )
{
return "昵称不能超过7个汉字。";
}
}
else if( ereg("^[0-9a-zA-Z_]*$",$username) )
{
if( $username_len > 13 )
{
return "昵称请不要超出13个字符";
}
}
else
{
if( $username_len > 8 )
{
return "您的昵称太长啦 ^_^";
}
}
return "";
}
function getTouristName()
{
global $login_key;
$guestName = "";
if( isset($_COOKIE['TouristName']) )
{
$TouristName = Xxtea::decrypt($_COOKIE['TouristName'],$login_key);
$checkTouristName = usernameCheck($TouristName);
if( empty($checkTouristName) )
{
$guestName = $TouristName;
}
}
return $guestName;
}
function strAddslashes($str)
{
if ( !get_magic_quotes_gpc() )
{
$str = addslashes($str);
}
return $str;
}
function filterCode($str)
{
$str = rtrim($str);
$str = preg_replace( "@<([a-z]+)(.*?)>@is", "", $str );
$str = preg_replace( "@</(.*?)>@is", "", $str );
$str = preg_replace( "@<!(.*?)>@is", "", $str );
$str = preg_replace( "@&([a-z0-9]+)(.*?);@is", "", $str );
$str = strAddslashes($str);
return $str;
}
function filterHTML($str)
{
$str = htmlspecialchars($str);
$str = stripslashes($str);
return $str;
}
function UBB($str)
{
$auto_arr = array(
"/(?<=[^]a-z0-9-="'\/])((https?|ftp|mms|rtsp)://)([a-z0-9/-_+=.~!%@?#%&;:$\│]+)/i",
"/(?<=[^]a-z0-9/-_.~?=:.])([_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4}))/i",
"/
/is"
);
$auto_url = array(
'<a href="\1\3" target="_blank">\1\3</a>',
'<a href="mailto:\0">\0</a>',
'<img src="1" border="0" />'
);
$str = preg_replace($auto_arr,$auto_url," ".$str);
$str = nl2br($str);
return $str;
}
function getStrlen($str)
{
if( function_exists('mb_strlen') )
{
return mb_strlen($str,"utf-8");
}
else
{
return preg_match_all('%(?:[x09x0Ax0Dx20-x7E]
| [xC2-xDF][x80-xBF]
| xE0[xA0-xBF][x80-xBF]
| [xE1-xECxEExEF][x80-xBF]{2}
| xED[x80-x9F][x80-xBF]
| xF0[x90-xBF][x80-xBF]{2}
| [xF1-xF3][x80-xBF]{3}
| xF4[x80-x8F][x80-xBF]{2})%xs',$str,$out);
}
}
function Truncate($string,$len,$wordsafe=FALSE)
{
$slen = strlen($string);
if ($slen <= $len)
{
return $string;
}
if ($wordsafe)
{
while (($string[--$len] != ' ') && ($len > 0)) {};
}
if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0))
{
return substr($string, 0, $len)."..";
}
while (ord($string[--$len]) < 0xC0) {};
return substr($string, 0, $len)."..";
}
function getCountDown($unixTime)
{
$showTime = date('Y.m',$unixTime);
if( date('Y',$unixTime) == date('Y') )
{
$showTime = date('m.d',$unixTime);
if( date('m.d',$unixTime) == date('m.d') )
{
$timeDifference = time() - $unixTime + 1;
if( $timeDifference < 60 )
{
$showTime = $timeDifference."秒前";
}
else if($timeDifference >= 60 && $timeDifference < 3600)
{
$showTime = floor($timeDifference/60)."分前";
}
else
{
$showTime = date('H:i',$unixTime);
}
}
}
return $showTime;
}
function sendEmail($sendto,$title,$content)
{
global $site_name,$site_domain,$mail_send_type,$send_email_address;
$send_name = iconv("UTF-8","GB2312",$site_name);
$mail_title = iconv("UTF-8","GB2312",$title);
$mail_body = iconv("UTF-8","GB2312",$content."<br><br>----------------------------------- 邮件来自于:".$site_domain);
if( $mail_send_type == "smtp" )
{
global $smtp_server,$smtp_port,$smtp_auth,$smtp_user,$smtp_password;
require_once(dirname(__FILE__)."/../class/class_Smtp.php");
$smtp = new smtpMail($smtp_server,$smtp_port,$smtp_auth,$smtp_user,$smtp_password);
$smtp->debug = false;
if( $smtp->sendmail($sendto, $send_name, $send_email_address, $mail_title, $mail_body, "HTML") )
{
return true;
}
else
{
return false;
}
}
else if( $mail_send_type == "sendmail" )
{
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=gbk' . "rn";
$headers .= 'From: '.$send_name.' <'.$send_email_address.'>' . "rn";
if( @mail($sendto,$mail_title,$mail_body,$headers) )
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
?>
function template($htmlFile)
{
$template = new phpSayTemplate($htmlFile);
return $template;
}
function checkVisitorDomain()
{
global $site_domain;
if( $_SERVER['SERVER_NAME'] != $site_domain )
{
$urlSelf = "";
if( isset($_SERVER['PHP_SELF']) && !empty($_SERVER['PHP_SELF']) && $_SERVER['PHP_SELF'] != "/index.php" )
{
$urlSelf .= $_SERVER['PHP_SELF'];
}
if( isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) && !empty($urlSelf) )
{
$urlSelf .= "?".$_SERVER['QUERY_STRING'];
}
header("HTTP/1.1 301 Moved Permanently");
header("location:http://".$site_domain.$urlSelf);
ob_end_flush();
exit;
}
}
function loginCookie($uid,$name,$group,$ip,$time)
{
global $login_key;
$secure = Xxtea::encrypt($uid."|".$name."|".$group."|".$ip,$login_key);
@setcookie("userId",$uid,$time+86400,"/");
@setcookie("userName",$name,$time+86400,"/");
@setcookie("userGroup",$group,$time+86400,"/");
@setcookie("userSecure",$secure,$time+86400,"/");
}
function isLogin()
{
global $login_key;
if( isset($_COOKIE['userId'],$_COOKIE['userName'],$_COOKIE['userGroup'],$_COOKIE['userSecure']) )
{
$Sc = explode("|",Xxtea::decrypt($_COOKIE['userSecure'],$login_key));
if( isset($Sc[0],$Sc[1],$Sc[2]) )
{
if( $_COOKIE['userId'] == $Sc[0] && $_COOKIE['userName'] == $Sc[1] && $_COOKIE['userGroup'] == $Sc[2] )
{
return true;
}
}
}
return false;
}
function createSecureKey($len)
{
$chararr = array('2','3','4','5','6','7','8','9','~','a','b','C','d','e','f','h','j','K','L','M','n','P','Q','R','s');
$keyindex = count($chararr)-1;
$keystr = "";
for ( $i=0;$i<$len;$i++ )
{
$keystr .= $chararr[rand(0,$keyindex)];
}
return $keystr;
}
function GetRealClientIP()
{
if( getenv("HTTP_X_CLUSTER_CLIENT_IP") && strcasecmp(getenv("HTTP_X_CLUSTER_CLIENT_IP"), "unknown") )
$ip_real = getenv("HTTP_X_CLUSTER_CLIENT_IP");
else if( getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown") )
$ip_real = getenv("HTTP_X_FORWARDED_FOR");
else if( getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown") )
$ip_real = getenv("REMOTE_ADDR");
else if( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown") )
$ip_real = $_SERVER['REMOTE_ADDR'];
else
$ip_real = "unknown";
$ip_arr = explode(",",$ip_real);
if( empty($ip_arr[1]) )
$client_ip = trim($ip_arr[0]);
else
$client_ip = trim($ip_arr[1]);
return $client_ip;
}
function emailcheck($email)
{
$ret=false;
if(strstr($email, '@') && strstr($email, '.')){
if(eregi("^([_a-z0-9]+([._a-z0-9-]+)*)@([a-z0-9]{1,}(.[a-z0-9-]{2,})*.[a-z]{2,4})$", $email)){
$ret=true;
}
if(strlen($email) < "8" || strlen($email) > "80") {
$ret=false;
}
}
return $ret;
}
function wordCheck($str)
{
$bArr = explode("_","!_@_#_$_%_^_&_*_(_)_._-_+_=_ˇ_¨_·_/__<_>_?_{_}_[_]_|_,_ _ __。_;_:_?_,_;_:_'_"_~_`");
for($i=0;$i<count($bArr);$i++)
{
if( strpos($str,$bArr[$i]) || $str{0} == $bArr[$i] )
return false;
}
return true;
}
function usernameCheck($username)
{
$username_len = getStrlen($username);
if( $username_len < 2 )
{
return "昵称至少2个字符。";
}
if( is_numeric($username{0}) || $username{0} == "_" )
{
return "昵称不能以数字和下划线开头。";
}
if( !wordCheck($username) )
{
return "昵称不能含有非法字符。";
}
if( preg_match("/^[x7f-xff]+$/",$username) )
{
if( $username_len > 7 )
{
return "昵称不能超过7个汉字。";
}
}
else if( ereg("^[0-9a-zA-Z_]*$",$username) )
{
if( $username_len > 13 )
{
return "昵称请不要超出13个字符";
}
}
else
{
if( $username_len > 8 )
{
return "您的昵称太长啦 ^_^";
}
}
return "";
}
function getTouristName()
{
global $login_key;
$guestName = "";
if( isset($_COOKIE['TouristName']) )
{
$TouristName = Xxtea::decrypt($_COOKIE['TouristName'],$login_key);
$checkTouristName = usernameCheck($TouristName);
if( empty($checkTouristName) )
{
$guestName = $TouristName;
}
}
return $guestName;
}
function strAddslashes($str)
{
if ( !get_magic_quotes_gpc() )
{
$str = addslashes($str);
}
return $str;
}
function filterCode($str)
{
$str = rtrim($str);
$str = preg_replace( "@<([a-z]+)(.*?)>@is", "", $str );
$str = preg_replace( "@</(.*?)>@is", "", $str );
$str = preg_replace( "@<!(.*?)>@is", "", $str );
$str = preg_replace( "@&([a-z0-9]+)(.*?);@is", "", $str );
$str = strAddslashes($str);
return $str;
}
function filterHTML($str)
{
$str = htmlspecialchars($str);
$str = stripslashes($str);
return $str;
}
function UBB($str)
{
$auto_arr = array(
"/(?<=[^]a-z0-9-="'\/])((https?|ftp|mms|rtsp)://)([a-z0-9/-_+=.~!%@?#%&;:$\│]+)/i",
"/(?<=[^]a-z0-9/-_.~?=:.])([_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4}))/i",
"/
);
$auto_url = array(
'<a href="\1\3" target="_blank">\1\3</a>',
'<a href="mailto:\0">\0</a>',
'<img src="1" border="0" />'
);
$str = preg_replace($auto_arr,$auto_url," ".$str);
$str = nl2br($str);
return $str;
}
function getStrlen($str)
{
if( function_exists('mb_strlen') )
{
return mb_strlen($str,"utf-8");
}
else
{
return preg_match_all('%(?:[x09x0Ax0Dx20-x7E]
| [xC2-xDF][x80-xBF]
| xE0[xA0-xBF][x80-xBF]
| [xE1-xECxEExEF][x80-xBF]{2}
| xED[x80-x9F][x80-xBF]
| xF0[x90-xBF][x80-xBF]{2}
| [xF1-xF3][x80-xBF]{3}
| xF4[x80-x8F][x80-xBF]{2})%xs',$str,$out);
}
}
function Truncate($string,$len,$wordsafe=FALSE)
{
$slen = strlen($string);
if ($slen <= $len)
{
return $string;
}
if ($wordsafe)
{
while (($string[--$len] != ' ') && ($len > 0)) {};
}
if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0))
{
return substr($string, 0, $len)."..";
}
while (ord($string[--$len]) < 0xC0) {};
return substr($string, 0, $len)."..";
}
function getCountDown($unixTime)
{
$showTime = date('Y.m',$unixTime);
if( date('Y',$unixTime) == date('Y') )
{
$showTime = date('m.d',$unixTime);
if( date('m.d',$unixTime) == date('m.d') )
{
$timeDifference = time() - $unixTime + 1;
if( $timeDifference < 60 )
{
$showTime = $timeDifference."秒前";
}
else if($timeDifference >= 60 && $timeDifference < 3600)
{
$showTime = floor($timeDifference/60)."分前";
}
else
{
$showTime = date('H:i',$unixTime);
}
}
}
return $showTime;
}
function sendEmail($sendto,$title,$content)
{
global $site_name,$site_domain,$mail_send_type,$send_email_address;
$send_name = iconv("UTF-8","GB2312",$site_name);
$mail_title = iconv("UTF-8","GB2312",$title);
$mail_body = iconv("UTF-8","GB2312",$content."<br><br>----------------------------------- 邮件来自于:".$site_domain);
if( $mail_send_type == "smtp" )
{
global $smtp_server,$smtp_port,$smtp_auth,$smtp_user,$smtp_password;
require_once(dirname(__FILE__)."/../class/class_Smtp.php");
$smtp = new smtpMail($smtp_server,$smtp_port,$smtp_auth,$smtp_user,$smtp_password);
$smtp->debug = false;
if( $smtp->sendmail($sendto, $send_name, $send_email_address, $mail_title, $mail_body, "HTML") )
{
return true;
}
else
{
return false;
}
}
else if( $mail_send_type == "sendmail" )
{
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=gbk' . "rn";
$headers .= 'From: '.$send_name.' <'.$send_email_address.'>' . "rn";
if( @mail($sendto,$mail_title,$mail_body,$headers) )
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
?>
$auto_arr = array(
"/(?<=[^]a-z0-9-="'\/])((https?|ftp|mms|rtsp)://)([a-z0-9/-_+=.~!%@?#%&;:$\│]+)/i",
"/(?<=[^]a-z0-9/-_.~?=:.])([_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4}))/i"
"/
/is");
$auto_url = array(
'<a href="\1\3" target="_blank">\1\3</a>',
'<a href="mailto:\0">\0</a>'
'<img src="1" border="0" />');
不行啊
"/(?<=[^]a-z0-9-="'\/])((https?|ftp|mms|rtsp)://)([a-z0-9/-_+=.~!%@?#%&;:$\│]+)/i",
"/(?<=[^]a-z0-9/-_.~?=:.])([_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4}))/i"
"/
$auto_url = array(
'<a href="\1\3" target="_blank">\1\3</a>',
'<a href="mailto:\0">\0</a>'
'<img src="1" border="0" />');
不行啊
1
其它帖子
- 怎么批量移动帖子?
点击:33 / 回复:0
- 去掉贴吧简介功能,加..
点击:66 / 回复:0
- 怎么批量移动帖子?
点击:33 / 回复:1
- 看帖页面问题
点击:24 / 回复:0
- 应该去掉贴吧简介功能..
点击:58 / 回复:0
- 什么时候支持水印和防..
点击:50 / 回复:0
- 建议首页贴吧列表,直..
点击:73 / 回复:2
- 现在的数据库备份有问..
点击:95 / 回复:3
- 请注意:问题来了!!
点击:47 / 回复:2
- 贴吧目录为什么不直接..
点击:90 / 回复:1






























