[PHP]实用函数2

  1、产生随机字符串函数

  

复制代码 代码如下:

  function random($length) {

  $hash = @#@#;

  $chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;

  $max = strlen($chars) - 1;

  mt_srand((double)microtime() * 1000000);

  for($i = 0; $i < $length; $i++) {

  $hash .= $chars[mt_rand(0, $max)];

  }

  return $hash;

  }

  2、截取一定长度的字符串(该函数对GB2312使用有效)

  

复制代码 代码如下:

  function Wordscut($string, $length ,$sss=0) {

  if(strlen($string) > $length) {

  if($sss){

  $length=$length - 3;

  $addstr=@# ...@#;

  }

  for($i = 0; $i < $length; $i++) {

  if(ord($string[$i]) > 127) {

  $wordscut .= $string[$i].$string[$i + 1];

  $i++;

  } else {

  $wordscut .= $string[$i];

  }

  }

  return $wordscut.$addstr;

  }

  return $string;

  }

  3、取得客户端IP地址

  

复制代码 代码如下:

  function GetIP(){

  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))

  $ip = getenv("HTTP_CLIENT_IP");

  else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))

  $ip = getenv("HTTP_X_FORWARDED_FOR");

  else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

  $ip = getenv("REMOTE_ADDR");

  else if (isset($_SERVER[@#REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "unknown"))

  $ip = $_SERVER[@#REMOTE_ADDR@#];

  else

  $ip = "unknown";

  return($ip);

  }

  4、判断邮箱地址

  

复制代码 代码如下:

  function checkEmail($inAddress)

  {

  return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+",$inAddress));

  }

  5、分页(两个函数配合使用)

  

复制代码 代码如下:

  function getpage($sql,$page_size=20)

  {

  global $page,$totalpage,$sums;  //out param

  $page = $_GET["page"];

  //$eachpage = $page_size;

  $pagesql = strstr($sql," from ");

  $pagesql = "select count(*) as ids ".$pagesql;

  $result = mysql_query($pagesql);

  if($rs = mysql_fetch_array($result)) $sums = $rs[0];

  $totalpage = ceil($sums/$page_size);

  if((!$page)($page<1)) $page=1;

  $startpos = ($page-1)*$page_size;

  $sql .=" limit $startpos,$page_size ";

  return $sql;

  }

  function showbar($string="")

  {

  global $page,$totalpage;

  $out="共<font ".$totalpage."color=@#red@#><b>".$totalpage."</b></font>页  ";

  $linkNum =4;

  $start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";

  $end   = ($page+round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage;

  $prestart=$start-1;

  $nextend=$end+1;

  if($page<>1)

  $out .= "<a href=@#?page=1&&".$string."@#title=第一页>第一页</a> ";

  if($start>1)

  $out.="<a href=@#?page=".$prestart."@# title=上一页>..<<</a> ";

  for($t=$start;$t<=$end;$t++)

  {

  $out .= ($page==$t) ? "<font [".$t."]color=@#red@#><b>[".$t."]</b></font> " : "<a $thref=@#?page=$t&&".$string."@#>$t</a> ";

  }

  if($end<$totalpage)

  $out.="<a href=@#?page=".$nextend."&&".$string."@# title=下一页>>>..</a>";

  if($page<>$totalpage)

  $out .= " <a href=@#?page=".$totalpage."&&".$string."@# title=最后页>最后页</a>";

  return $out;

  }

  6、获取新插入数据的ID

  

复制代码 代码如下:

  <?

  mysql_insert_id();

  ?>