+ -
当前位置:首页 → 问答吧 → 共享本人常使用的一些函数

共享本人常使用的一些函数

时间:2009-05-26

来源:互联网

[php]

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", "&lt;",$mystring);
$mystring = preg_replace("/>/i", "&gt;",$mystring);
$mystring = preg_replace("/\ /i","&nbsp;",$mystring);
$mystring = preg_replace("/\n/i","<br>",$mystring);
$mystring = preg_replace("/\t/i","&nbsp;&nbsp;&nbsp;&nbsp;",$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'>&lt;&lt;</a><a href='{$mpurl}&page={$prepage}'>&lt;</a>";
   } else {
    $multipage .= "<span class='disabled'>&lt;&lt;</span><span class='disabled'>&lt;</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}'>&gt;</a><a href='{$mpurl}&page={$maxpage}'>&gt;&gt;</a>";
   } else {
    $multipage .= "<span class='disabled'>&gt;</span><span class='disabled'>&gt;&gt;</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&quot;.$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&quot;.$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

问一句若参数中是band,deselected,哪个sql过滤的东西会怎么样?

作者: dongxin1390008   发布时间: 2009-06-13