共享本人常使用的一些函数
时间:2009-05-26
来源:互联网
function get_param($param_name)
{
$param_value = "";
if(isset($_POST[$param_name]))
$param_value = $_POST[$param_name];
else if(isset($_GET[$param_name]))
$param_value = $_GET[$param_name];
return trim($param_value);
}
function HTMLEncode($mystring){
//转换为HTML
$mystring = preg_replace("/&/i", "&",$mystring);
$mystring = preg_replace("/\"/i", """,$mystring);
$mystring = preg_replace("/</i", "<",$mystring);
$mystring = preg_replace("/>/i", ">",$mystring);
$mystring = preg_replace("/\ /i"," ",$mystring);
$mystring = preg_replace("/\n/i","<br>",$mystring);
$mystring = preg_replace("/\t/i"," ",$mystring);
return $mystring;
}
//截取utf8字符?
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i<$strlen; $i++)
{
if($i>=$start && $i<($start+$sublen))
{
if(ord(substr($string, $i, 1))>129) $tmpstr.= substr($string, $i, 2);
else $tmpstr.= substr($string, $i, 1);
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) $tmpstr.= "..";
return $tmpstr;
}
}
function setsafesql($str){
//过滤有害的字符串,防SQL注入
global $message; //引用定义在lang文件夹下的变量
if (eregi("\'|\"|and|or|select|insert|update|delete|union",$str)){
echo($message["oper"]["opererror"]."<a href='javascript:history.go(-2);'>".$message["oper"]["operback"]."</a>");
exit();
}else{
return $str;
}
}
function multi($num, $perpage, $curr_page, $mpurl) {
$multipage = '';
if($num > $perpage) {
$page = 10;
$offset = 2;
$pages = ceil($num / $perpage);
$from = $curr_page - $offset;
$to = $curr_page + $page - $offset - 1;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
if($from < 1) {
$to = $curr_page + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curr_page - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
}
//上一页,下一页
if($curr_page>1){
$prepage = $curr_page-1;
}else{
$prepage = 1;
}
if($curr_page<$pages){
$nextpage = $curr_page+1;
}else{
$nextpage = $curr_page;
}
//
if($curr_page > 1) {
$multipage .= "<a href='{$mpurl}&page=1'><<</a><a href='{$mpurl}&page={$prepage}'><</a>";
} else {
$multipage .= "<span class='disabled'><<</span><span class='disabled'><</span>";
}
for($i = $from; $i <= $to; $i++) {
if($i != $curr_page) {
$multipage .= "<a href='{$mpurl}&page=$i'>$i</a>";
} else {
$multipage .= "<span class='current'>$i</span>";
}
}
$maxpage = ceil($num/$perpage);
if($curr_page < $maxpage) {
$multipage .= "<a href='{$mpurl}&page={$nextpage}'>></a><a href='{$mpurl}&page={$maxpage}'>>></a>";
} else {
$multipage .= "<span class='disabled'>></span><span class='disabled'>>></span>";
}
}
return $multipage;
}//end
function showjsinfo($mssage,$url="OLD"){
//show $message and goto $url
//if $url length less than 4 go back
if(strlen($url) < 4){
echo("<script>alert('".$mssage."');".chr(10));
die("window.history.go(-1);</script>");
}else{
echo("<script>alert('".$mssage."');".chr(10));
die("window.location.href='".$url."';</script>");
}
}
// 重定向
function Redirect($url)
{
echo "<script language=\"javascript\">location.replace(\"$url\");</script>";
exit;
}
// 编码转换函数
function Xconv($int, $out, $str)
{
$int = strtoupper($int);
$out = strtoupper($out);
if ($int == "GB2312") $int = "GBK";
if ($out == "GB2312") $out = "GBK";
if (!function_exists("iconv"))
{
global $_CONF;
@include_once $_CONF["PATH"]."/include/encoding/encoding.inc.php";
$CharEncoding = new Encoding();
$CharEncoding->FilePath = $_CONF["PATH"]."/include/encoding/";
$CharEncoding->SetGetEncoding($int);
$CharEncoding->SetToEncoding($out);
$var = $CharEncoding->EncodeString($str);
}
else
{
$var = iconv($int, $out, $str);
}
if (empty($var))
{
return $str;
}
else
{
return $var;
}
}
// 剪切字符串为指定长度,并且剔除半个汉字
function TrimStr($string, $length)
{
$len = strlen($string);
if ($len <= $length) return $string;
$checkchar = "";
for ($i = 0; $i < $length; $i++)
{
$ac = ord($string[$i]);
if ($ac >= 161)
{
$checkchar .= chr($ac);
$checkchar .= chr(ord($string[$i+1]));
$i++;
}
else
{
$checkchar .= chr($ac);
}
}
return trim($checkchar)." ......";
}
// 检查字符串是否含有非法的字符,可用于检查“用户名”等字段
function checkAlpha($alpha)
{
if(!ereg("^[a-zA-Z0-9 \-]+$", $alpha))
{
return 0;
}
else
{
return 1;
}
}
// 检查Email地址
function checkMail($email)
{
if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](g|l|m|pa|t|u|v)?$", $email))
{
return 0;
}
else
{
return 1;
}
}
// 检查ASCII字符串
function checkAscii($ascii)
{
if(!ereg("^[a-zA-Z0-9 \.\,\+\!\@\#\$\%\^\&\*\(\)\~\/\'\_\-]+$", $ascii))
{
return 0;
}
else
{
return 1;
}
}
// 检查是否为数字
function checkDigit($digit)
{
if(!ereg("^[0-9]+$", $digit))
{
return 0;
}
else
{
return 1;
}
}
// 检查主机名称是否合法
function checkHostName($alpha)
{
if(!ereg("^[a-zA-Z0-9\.\@\*\-]+$", $alpha))
{
return 0;
}
else
{
return 1;
}
}
// 格式化字符串,清除“\”
function handleData($var)
{
if (is_array($var))
{
foreach ($var as $k => $v)
{
if (is_array($v))
{
foreach($v as $k1 => $v1)
{
$var[$k][$k1] = trim(htmlspecialchars(stripslashes($v1)));
}
}
else
{
$var[$k] = trim(htmlspecialchars(stripslashes($v)));
}
}
}
else
{
$var = trim(htmlspecialchars(stripslashes($var)));
}
return $var;
}
// 生成密码
function CreatePassword($str)
{
mt_srand(microtime() * 10000);
$rand = mt_rand();
$passwd = md5($rand."RedDNS, Inc.".$str.time());
$passwd = substr($passwd, 1, 8);
return $passwd;
}
//数据库连接
function dbconnect() {
global $conn;
include_once(I_ROOT.'./include/mysql.inc.php');
$conn = new dbstuff();
}
//设置cookie
function isetcookie($var, $value, $life=0) {
setcookie($var, $value, $life, COOKIE_PATH, COOKIE_DOMAIN, $_SERVER['SERVER_PORT']==443?1:0);
}
//对话框
function showmessage($msgkey, $url_forward='', $second=1, $values='') {
global $smarty, $showmessage;
if($url_forward && empty($second)) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url_forward");
} else {
//include_once(I_ROOT.'./language/lang_showmessage.php');
if(isset($showmessage[$msgkey])) {
$message = $showmessage[$msgkey];
} else {
$message = $msgkey;
}
if($values != '') {
$message .= $value;
}
if($url_forward) {
$message = "<a href=\"$url_forward\">$message</a><script>setTimeout(\"window.location.href ='$url_forward';\", ".($second*1000).");</script>";
} else {
$message = "<a href=\"javascript:history.back(-1);\">$message</a>";
//$message = "<a href=\"javascript:history.back(-1);\">$message</a><script>setTimeout(\"history.back(-1);\", ".($second*1000).");<//script>";
}
$smarty -> assign('url_forward', $url_forward);
$smarty -> assign('message', $message);
$smarty -> display('showmessage.html');
}
exit;
}
//本地密码生成方式
function buildpassword($password) {
return substr(sha1($password),10,20);
}
//获取到表名
function tname($name) {
return MYSQL_TABLEPRE.$name;
}
//添加数据
function inserttable($tablename, $insertsqlarr, $returnid=0, $replace = false) {
global $conn;
$insertkeysql = $insertvaluesql = $comma = '';
foreach ($insertsqlarr as $insert_key => $insert_value) {
$insertkeysql .= $comma.'`'.$insert_key.'`';
$insertvaluesql .= $comma.'\''.$insert_value.'\'';
$comma = ', ';
}
$method = $replace?'REPLACE':'INSERT';
$conn->Query($method.' INTO '.tname($tablename).' ('.$insertkeysql.') VALUES ('.$insertvaluesql.')');
if($returnid && !$replace) {
return $conn->InsertID();
}
}
//获取在线IP
function getonlineip($format=0) {
//初始化变量
$returnIp = '';
//获取IP
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);
$returnIp = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
//格式化IP %03d表示 空格用0代替最小三位整数转成十进位
if($format) {
$ips = explode('.', $_SGLOBAL['onlineip']);
for($i=0;$i<3;$i++) {
$ips[$i] = intval($ips[$i]);
}
return sprintf('%03d%03d%03d', $ips[0], $ips[1], $ips[2]);
} else {
return $returnIp;
}
}
//玩过的游戏
function getplayedgames($uid, $orderby='gl.log_count') {
//$uid 用户ID $orderby 排序字段
global $WEBPATH_SERVER, $conn;
$result = array();
$sql = "SELECT gm.uid as uid, gm.name as name, gm.game_type as game_type, gm.game_status as game_status, gm.pic as pic, gm.game_url as gane_url, gm.if_open as if_open, gm.office_site as office_site FROM ".tname('game')." as gm, ".tname('game_login')." as gl WHERE gl.user_id='$uid' AND gl.game_id=gm.uid ORDER BY $orderby DESC, gl.last_time DESC";
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$value['game_type'] = get_gtype_name($value['game_type']);
$value['onlinenum'] = getonlineplayernum($value['uid']);
$value['pic'] = $WEBPATH_SERVER.$value['pic'];
$value['servers'] = getservers($value['uid']);
$result[] = $value;
}
return $result;
}
//在线用户数量
function getonlineplayernum($appid = 1) {
global $conn;
$result = 0;
if($appid <= 0) return $result;
$sql = "SELECT count(*) FROM ".tname('onlinetime')." WHERE appid='$appid' AND status_p=1";
$result = $conn->Result($conn->Query($sql), 0);
return $result;
}
//在线用户信息
function getonlineplayer($uid=0, $appid=-1, $start=0, $pagesize=48) {
global $conn;
$result = array();
if($appid >= 0) {
$sqladd = " appid='$appid'";
} else {
$sqladd = 1;
}
$sqladd .= " AND status_p=1";
if($uid > 0) {
$sql = "SELECT * FROM ".tname('onlinetime')." WHERE $sqladd AND uid='$uid' ORDER BY logintime DESC LIMIT $start, $pagesize";
} else {
$sql = "SELECT * FROM ".tname('onlinetime')." WHERE $sqladd GROUP BY uid ORDER BY logintime DESC LIMIT $start, $pagesize";
}
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$result[] = $value;
}
return $result;
}
//正在玩的游戏
function getplayinggame($uid) {
global $conn;
$result = array();
$uid = intval($uid);
if($uid <= 0) return $result;
$sql = "SELECT appid, appname FROM ".tname('onlinetime')." WHERE uid='$uid' AND status_p=1 ORDER BY logintime DESC LIMIT 0,1";
$query = $conn->Query($sql);
$result = $conn->FetchArray($query);
return $result;
}
//判断用户是否在线
function isonline($uid, $appid=-1) {
/*
参数: $uid 用户ID
$appid 应用ID
返回: 用户所在应用的数量
*/
global $conn;
$uid = intval($uid);
$result = 0;
if($uid <= 0) return $result;
if($appid >= 0) {
$sqladd = " appid='$appid'";
} else {
$sqladd = 1;
}
$sql = "SELECT count(*) FROM ".tname('onlinetime')." WHERE $sqladd AND uid='$uid' AND status_p=1";
$result = $conn->Result($conn->Query($sql), 0);
return $result;
}
//取游戏的ID和名称和链接地址
function getgame_simple() {
global $conn;
$result = array();
$sql = "SELECT uid, name FROM ".tname('game')." WHERE if_open!=0 ORDER BY orderby DESC";
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$result[] = $value;
}
return $result;
}
//取游戏信息和分区信息 $servers=0只取游戏信息
function getgame($gameid = 0, $servers = 1, $news = 1, $orderby = array('orderby')) {
global $conn, $WEBPATH_SERVER;
//初始化变量
$gameid = intval($gameid);
$servers = intval($servers);
$result = array();
//游戏ID
if($gameid <= 0) {
$sql = "SELECT gm.uid, gm.name, gm.game_type as game_type_id, gm.game_status, gm.commend_point, gm.office_site, gm.pic, gm.game_url, gm.content, gm.bank_pay, gm.teny_pay, gm.phone_pay, gm.kuai_pay, gm.tel_pay, gm.yee_pay, gm.if_commend, gm.game_help, gm.orderby, gm.if_area,gm.bbs_url,gt.name as game_type FROM ".tname('game')." as gm, ".tname('gametype')." as gt WHERE gm.if_open!=0 AND gm.game_type=gt.uid";
} else {
$sql = "SELECT gm.uid, gm.name, gm.game_type as game_type_id, gm.game_status, gm.commend_point, gm.office_site, gm.pic, gm.game_url, gm.content, gm.bank_pay, gm.teny_pay, gm.phone_pay, gm.kuai_pay, gm.tel_pay, gm.yee_pay, gm.if_commend, gm.game_help, gm.orderby, gm.if_area,gm.bbs_url, gt.name as game_type FROM ".tname('game')." as gm, ".tname('gametype')." as gt WHERE uid='$gameid' AND gm.if_open!=0 AND gm.game_type=gt.uid";
}
//排序
if(!empty($orderby)) {
$orderby = implode(',', $orderby);
$sql .= " ORDER BY $orderby DESC";
}
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$value['pic'] = $WEBPATH_SERVER.$value['pic'];
$value['sub_content'] = cut_str($value['content'], 45);
$value['servers'] = getservers($value['uid']);//分区信息
$value['onlinenum'] = getonlineplayernum($value['uid']);//在线人数
$result[] = $value;
}
/* //分区信息
if($servers != 0) {
foreach($result as $key=>&$value) {
$value['servers'] = getservers($value['uid']);
}
}*/
/*//游戏新闻
if($news != 0) {
foreach($result as $key=>$value) {
if(!empty($value['uid'])) {
$result[$key]['news'] = getnews(0, $value['uid'], 0, 4, 13);
} else {
$result[$key]['news'] = array();
}
}
}*/
return $result;
}
//游戏分区
function getservers($gameid) {
global $conn, $message;
$result = array();
$sql = "SELECT uid, name, status, url, if_open, office_id, onlinenum, num_1, num_2, num_3, num_4 FROM ".tname('server')." WHERE game_id='$gameid' AND if_open!=0 ORDER BY uid DESC";
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
if($values['if_open'] == 2) {
$value['server_status'] = 1;
} else {
if($value['onlinenum'] >= $value['num_4']) {
$value['server_status'] = 1;
} elseif($value['onlinenum'] >= $value['num_3']) {
$value['server_status'] = 2;
} elseif($value['onlinenum'] >= $value['num_2']) {
$value['server_status'] = 3;
} else {
$value['server_status'] = 4;
}
//$value['server_status'] = getserverstatus($value['uid'], $value['onlinenum']);
}
$result[] = $value;
}
return $result;
}
/*//获取游戏状态
function getserverstatus($serversid, $onlinenum) {
include(I_ROOT.'/data/gameservers_config.php');
$result = 1;
if(!is_array($serverstatus)) return $result;
krsort($serverstatus);
foreach($serverstatus[$serversid] as $key=>$value) {
if($onlinenum >= $key) {
$result = $value;
break;
}
}
return $result;
}*/
//游戏分线
function getgameline($gameid=0, $serverid=0) {
global $conn;
$result = array();
if($gameid > 0 && $serverid > 0) {
$sql = "SELECT * FROM ".tname('line')." WHERE game_id='$gameid' AND server_id='$serverid'";
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$result[] = $value;
}
}
return $result;
}
//取游戏分类
function getgamesorts() {
global $conn;
$result = array();
$sql = "SELECT name FROM ".tname('gametype')." ";
$query = $conn->Query($sql);
while($value = $conn->FetchArray($query)) {
$result[] = htmlspecialchars($value['name']);
}
return $result;
}
//取游戏新闻 $typeid分类ID $gameid游戏ID
function getnews($typeid = 0, $gameid = 0, $start = 0, $pagesize = 5, $title_len=14, $time_format=1, $orderby = 'mody_time') {
global $conn;
$result = array();
$typeid = intval($typeid);
$gameid = intval($gameid);
$start = intval($start);
$pagesize = intval($pagesize);
$title_len = intval($title_len);
$sqladd = '';
if($typeid != 0) {
$sqladd .= " AND type_id={$typeid}";
}
if($gameid != 0) {
$sqladd .= " AND relate_game={$gameid}";
}
$sql = "SELECT uid, title, mody_time FROM ".tname('news')." WHERE 1 {$sqladd} ORDER BY {$orderby} DESC LIMIT {$start}, {$pagesize}";
$query = $conn->Query($sql);
while($value = $conn -> FetchArray($query)) {
if($title_len > 0) $value['sub_title'] = htmlspecialchars(cut_str($value['title'], $title_len));
switch($time_format){
case 1: $value['sub_modify_time'] = date('m/d', $value['mody_time']); break;
case 2: $value['sub_modify_time'] = date('Y-m-d', $value['mody_time']); break;
default:$value['sub_modify_time'] = $value['mody_time']; break;
}
$result[] = $value;
}
return $result;
}
//取广告信息
function getad($type = 1) {
//$type = 1 FLASH广告
// = 2 首页广告
global $conn, $WEBPATH_SERVER;
$type = intval($type);
$result = array();
if($type == 2) $limit = "LIMIT 0, 1";
$sql = "SELECT name, pic, url FROM ".tname('ad')." WHERE type='$type' ORDER BY mody_time DESC $limit";
$query = $conn->Query($sql);
if($type == 1) {
while($value = $conn->FetchArray($query)) {
$value['pic'] = "[url=http://www.5i.com".$value[]http://www.5i.com".$value['pic'[/url]];
//$value['pic'] = $WEBPATH_SERVER.$value['pic'];
/*$result['name'] .= $value['name'].'|';
$result['pic'] .= $value['pic'].'|';
$result['url'] .= $value['url'].'|';*/
$result[] = $value;
}
/*$result['name'] = substr($result['name'], 0, strlen($result['name'])-1);
$result['pic'] = substr($result['pic'], 0, strlen($result['pic'])-1);
$result['url'] = substr($result['url'], 0, strlen($result['url'])-1);*/
} else {
while($value = $conn->FetchArray($query)) {
//$value['pic'] = $WEBPATH_SERVER.$value['pic'];
$value['pic'] = "[url=http://www.5i.com".$value[]http://www.5i.com".$value['pic'[/url]];
$result[] = $value;
}
}
return $result;
}
//获取用户本应用的资料
function getspace($uid) {
global $conn;
$result = array();
$uid = intval($uid);
if($uid <= 0) return $result;
$sql = "SELECT * FROM ".tname('members')." WHERE uid='$uid'";
$query = $conn -> Query($sql);
$result = $conn -> FetchArray($query);
return $result;
}
function get_userbrowser(){
$agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
if(strpos($agent, 'MSIE')) {
if (preg_match("/MSIE ([0-9].[0-9]+);/",$agent,$matches)){
$browser = 'Internet Explorer '.$matches[1];
} else {
$browser = 'Internet Explorer (hack)';
}
}elseif(strpos($agent, "NetCaptor")) {
$browser = "NetCaptor";
} elseif(strpos($agent, "Netscape")) {
$browser = "Netscape";
} elseif(strpos($agent, "Lynx")) {
$browser = "Lynx";
} elseif(strpos($agent, "Opera")) {
$browser = "Opera";
} elseif(strpos($agent, "Konqueror")) {
$browser = "Konqueror";
} elseif(strpos($agent, "Mozilla")) {
if (preg_match("/ Firefox/([0-9](.[0-9])+)/",$agent,$matches)){
$browser = 'Firefox '.$matches[1];
} else {
$browser = 'Moziila';
}
} else {
$browser = 'other';
}
return $browser;
}
/**
* 获取访问者的操作系统类型
* @return unknown
*/
function get_os() {
$os = $_SERVER['HTTP_USER_AGENT'];
if(strpos($os,"Windows NT 5.0")) $os="Windows 2000";
elseif(strpos($os,"Windows NT 5.1")) $os="Windows XP";
elseif(strpos($os,"Windows NT 5.2")) $os="Windows 2003";
elseif(strpos($os,"Windows NT 6.0")) $os="Windows Vista";
elseif(strpos($os,"Windows NT")) $os="Windows NT";
elseif(strpos($os,"Windows 9")) $os="Windows 98";
elseif(strpos($os,"unix")) $os="Unix";
elseif(strpos($os,"linux")) $os="Linux";
elseif(strpos($os,"SunOS")) $os="SunOS";
elseif(strpos($os,"BSD")) $os="FreeBSD";
elseif(strpos($os,"Mac")) $os="Mac";
else $os="Other";
return $os;
}
/**
* 返回付款方式名称
* @return str
*/
function show_payment_name($typeid,$retype=1){
if(preg_match('/[\x80-\xff]+/',$typeid))
{
$paymentname = $typeid;
} else {
switch(intval($typeid)){
case 1:
$paymentname = "银行卡充值";
$paytype='1000000-NET';
break;
case 2:
$paymentname = "神州行卡直冲";
$paytype='SZX-NET';
break;
case 3:
$paymentname = "易宝支付";
$paytype='1000000-NET';
break;
case 4:
$paymentname = "快钱支付";
break;
case 5:
$paymentname = "支付宝支付";
break;
case 6:
$paymentname = "打电话充值";
break;
case 7:
$paymentname = "骏网一卡通";
$paytype='JUNNET-NET';
break;
case 8:
$paymentname = "盛大卡";
$paytype='SNDACARD-NET';
break;
case 9:
$paymentname = "征途卡";
$paytype='ZHENGTU-NET';
break;
case 10:
$paymentname = "Q币卡";
$paytype='QQCARD-NET';
break;
default:
$paymentname = '其它充值方式' ;
break;
}
}
if($retype==1){
return $paymentname;
}else {
return $paytype;
}
}
//充值结果
function resultorder($statu)
{
switch(intval($statu))
{
case 0:
$statu = '无效';
break;
case 1:
$statu = '成功';
break;
case 2:
$statu = '充值失败';
break;
case 3:
$statu = '返点失败';
break;
default:
$statu = '其它情况';
break;
}
return $statu;
}
//返回单个游戏名称
function get_gamename($gameid) {
global $conn;
$gameid = intval($gameid);
$sql = "SELECT name FROM ".tname('game')." WHERE uid='".$gameid."'";
$query = $conn->Query($sql);
if($query){
$value = $conn -> FetchArray($query);
$gamename = $value["name"]==""?"未知游戏":$value["name"];
}else{
$gamename = "";
}
return $gamename;
}
//返回单个区服
function get_servername($serverid) {
global $conn;
$serverid = intval($serverid);
$sql = "SELECT name FROM ".tname('server')." WHERE uid='".$serverid."' and if_open=1";
$query = $conn->Query($sql);
if($query){
$value = $conn -> FetchArray($query);
$servername = $value["name"]==""?"未知区服":$value["name"];
}
return $servername;
}
function str_guoyu($str){
$str=trim($str);
$str=strip_tags($str);
$str=htmlspecialchars_decode($str);
$str=addslashes($str);
$str=mysql_escape_string($str);
return $str;
}
//UTF-8截取字符串
function getstr($string, $length, $decode=0, $in_slashes=0, $out_slashes=0) {
//$decode 进行url解码 ,$in_slashes 传入字符串去\转义 $out_slashes传出字符串加\转移
$string = trim($string);
if ($decode) {
$string = urldecode($string);
}
if($in_slashes) {
//传入的字符有slashes
$string = stripslashes($string);
}
if($length && strlen($string) > $length) {
//截断字符
$wordscut = '';
//utf8编码
$n = 0;
$tn = 0;
$noc = 0;
while ($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1;
$n++;
$noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2;
$n += 2;
$noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3;
$n += 3;
$noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4;
$n += 4;
$noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5;
$n += 5;
$noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6;
$n += 6;
$noc += 2;
} else {
$n++;
}
if ($noc >= $length) {
break;
}
}
if ($noc > $length) {
$n -= $tn;
}
$wordscut = substr($string, 0, $n);
$string = $wordscut;
}
if($out_slashes) {
$string = addslashes($string);
}
return trim($string);
}
//处理搜索关键字
function stripsearchkey($string) {
$string = trim($string);
$string = str_replace('*', '%', addcslashes($string, '%_'));
$string = str_replace('_', '\_', $string);
return $string;
}
//产生随机字符
function random($length, $numeric = 0) {
PHP_VERSION < '4.2.0' ? mt_srand((double)microtime() * 1000000) : mt_srand();
$seed = base_convert(md5(print_r($_SERVER, 1).microtime()), 16, $numeric ? 10 : 35);
$seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
$hash = '';
$max = strlen($seed) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $seed[mt_rand(0, $max)];
}
return $hash;
}
//计算总人数(总人数+当天注册人数*5)
function totalmembers() {
global $conn;
$totalmembers = $conn->Result($conn->Query("SELECT count(*) FROM ".tname('members').""), 0);//总人数
//$todaymembers = $conn->Result($conn->Query("SELECT count(*) FROM ".tname('members')." WHERE reg_time >= ".strtotime(date('Y-m-d').' 00:00:00').""), 0);
//$totalmembers = $totalmembers + $todaymembers * 5;
$totalmembers = $totalmembers*3;
return $totalmembers;
}
//产生form防伪码
function formhash() {
// session_start();
global $_SESSION, $userlist;
if(empty($_SESSION['formhash'])) {
$hashadd = defined('IN_ADMINCP') ? 'Only For UCenter Home AdminCP' : 'HASH OF YUJUAN';
$_SESSION['formhash'] = substr(md5(substr(TIMESTAMP, 0, -7).'|'.$userlist['uid'].'|'.md5('www.5i.com').'|'.$hashadd), 8, 8);
}
return $_SESSION['formhash'];
}
//判断提交是否正确
function submitcheck($var) {
if(!empty($_POST[$var]) && $_SERVER['REQUEST_METHOD'] == 'POST') {
if((empty($_SERVER['HTTP_REFERER']) || preg_replace("/https?:\/\/([^\:\/]+).*/i", "[url=file://\\1]\\1[/url]", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "[url=file://\\1]\\1[/url]", $_SERVER['HTTP_HOST'])) && $_POST['formhash'] == formhash()) {
return true;
} else {
showmessage('submit_invalid');
}
} else {
return false;
}
}
//密码解密算法
function revertpassword($password, $hash = '') {
return substr($password, 2, strlen($password)-6);
}
//获取限制条件
function getwheres($intkeys, $strkeys, $randkeys, $likekeys, $regkeys, $pre='') {
$wherearr = array();
$urls = array();
if(is_array($intkeys) && !empty($intkeys)) {
foreach ($intkeys as $key=>$var) {
$value = get_param($var);
$value = !empty($value)?stripsearchkey($value):'';
if(strlen($value)) {
$wherearr[] = "{$pre}{$key}='".intval($value)."'";
$urls[] = "$var=$value";
}
}
}
if(is_array($strkeys) && !empty($strkeys)) {
foreach ($strkeys as $key=>$var) {
$value = get_param($var);
$value = strlen($value)?stripsearchkey($value):'';
if(strlen($value)) {
$wherearr[] = "{$pre}{$key}='$value'";
$urls[] = "$var=".rawurlencode($value);
}
}
}
if(is_array($randkeys) && !empty($randkeys)) {
foreach ($randkeys as $key=>$vars) {
$value1 = get_param($var[1].'1');
$value1 = strlen($value1)?stripsearchkey($value1):'';
$value1 = get_param($var[2].'2');
$value1 = strlen($value1)?stripsearchkey($value1):'';
if($value1) {
$wherearr[] = "{$pre}{$key[1]}>='$value1'";
$urls[] = "{$vars[1]}1=".rawurlencode($_GET[$vars[1].'1']);
}
if($value2) {
$wherearr[] = "{$pre}{$key[1]}<='$value2'";
$urls[] = "{$vars[1]}2=".rawurlencode($_GET[$vars[1].'2']);
}
}
}
if(is_array($likekeys) && !empty($likekeys)) {
foreach ($likekeys as $key=>$var) {
$value = get_param($var);
$value = strlen($value)?stripsearchkey($value):'';
if(strlen($value)) {
$wherearr[] = "{$pre}{$key} LIKE BINARY '%$value%'";
$urls[] = "$var=".rawurlencode($value);
}
}
}
if(is_array($regkeys) && !empty($regkeys)) {
foreach ($regkeys as $key=>$var) {
$value = get_param($var);
$value = strlen($value)?stripsearchkey($value):'';
if(!empty($value)) {
$wherearr[] = "(FIND_IN_SET({$value}, {$pre}{$key}))";
$urls[] = "$var=".rawurlencode($value);
}
}
}
return array('wherearr'=>$wherearr, 'urls'=>$urls);
}
//获取用户
function getmembers($wheresql, $start, $perpage, $orderby = 'uid', $sc = 'DESC', $friendids = array()) {
/*
参数: $wheresql 查询条件
$start 开始数
$perpage 查询数量
$orderby 排序
$sc 正序或倒序
$friendids 需要排除的ID数组
返回: 用户信息的二位数组
*/
global $conn;
$result = array();
if(empty($wheresql)) {
$wheresql = 1;
}
if(empty($orderby)) {
$orderby = 'uid';
$sc = 'DESC';
}
$sql = "SELECT mem.uid, mem.username, mem.name, online.appid, online.appname FROM ".tname('members')." AS mem LEFT JOIN ".tname('onlinetime')." AS online ON mem.uid = online.uid WHERE online.status_p=1 GROUP BY mem.uid ORDER BY mem.photo_tag DESC, mem.name DESC, online.appid DESC, online.logintime DESC LIMIT $start,$perpage";
$query = $conn->Query($sql);
if(!empty($friendids)) {
while($value = $conn->FetchArray($query)) {
if(!in_array($value['uid'], $friendids)) {
$value['supe_name'] = empty($value['name'])?$value['username']:$value['name'];
$result[] = $value;
}
}
} else {
while($value = $conn->FetchArray($query)) {
$value['supe_name'] = empty($value['name'])?$value['username']:$value['name'];
$result[] = $value;
}
}
return $result;
}
//获取游戏类型名称
function get_gtype_name($game_id){
global $conn;
$game_id = intval($game_id);
if(!empty($game_id)){
$sql = "select uid,name from 16wan_gametype where uid=$game_id";
$result = $conn->query($sql);
$row = $conn->Fetcharray($result);
$g_name = $row['name'];
return $g_name;
}else{
return false;
}
}
//脚本执行时间差
function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
//修改用户积分
function edit_credit($uid, $num, $wheresql=1) {
//参数:$uid 用户ID $num 积分数 $wheresql 查询条件
//返回: -1 没有做任何更改
// 0 更新失败
// 1 更新成功
global $conn;
$uid = intval($uid);
$num = intval($num);
$result = -1;
if($uid == 0 || $num == 0) {
return $result;
}
$sql = "UPDATE ".tname('members')." SET credit=credit+$num WHERE $wheresql AND uid='$uid'";
if($query = $conn->Query($sql)) {
if($conn->AffectedRows() > 0) $result = 1;
} else {
$result = 0;
}
return $result;
}
//用户I币信息
function getipay($uid) {
//$uid 用户ID
global $conn;
$uid = intval($uid);
$sql = "SELECT inums_total, inums_used, inums_unused FROM ".tname('ipay')." WHERE user_id='$uid'";
$query = $conn->Query($sql);
$result = $conn->FetchArray($query);
return $result;
}
function ck_numen($str){
return preg_match("/^([a-zA-Z0-9_-])+$/",$str);
}
//产生随机特定范围的字符
function randomkeys($length) {
$pattern = '1234567890abcdef'; //字符池
for($i=0; $i<$length; $i++) {
$key .= $pattern{mt_rand(0,15)}; //生成php随机数
}
return $key;
}
//登陆解密算法
function revertpassword2($md5_pwd) {
//96e79218965eb72c92a549dd985ac330112
//$md5_pwd = '96e79218965eb72c92a549dd985ac330112';
//$hash = '06c098109';
//echo $md5_pwd.'<br />';
$hash = $_SESSION['hash'];
$first = intval(substr($hash, 0, 2));
$second = intval(substr($hash, 3, 2));
$third = intval(substr($hash, 6, 2));
$third_md5_pwd = substr($md5_pwd, 0, 35-$third-1);
$third_md5_pwd .= substr($md5_pwd, -$third);
$second_md5_pwd = substr($third_md5_pwd, 0, 34-$second-1);
$second_md5_pwd .= substr($third_md5_pwd, -$second);
$first_md5_pwd = substr($second_md5_pwd, 0, 33-$first-1);
$first_md5_pwd .= substr($second_md5_pwd, -$first);
return $first_md5_pwd;
[/php]
作者: tangxuewu 发布时间: 2009-05-26
作者: mqh21364 发布时间: 2009-05-26
作者: linjize123 发布时间: 2009-05-27
作者: z0800 发布时间: 2009-05-29


作者: fengying 发布时间: 2009-05-29
作者: yichao840 发布时间: 2009-06-10
作者: ws00377531 发布时间: 2009-06-10
作者: ai3579 发布时间: 2009-06-12
作者: dongxin1390008 发布时间: 2009-06-13
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28