文章浏览 复制本页面地址

php 常用自定义处理方法汇总----001

//获得当前的脚本网址
function GetCurUrl()
{
if(!empty($_SERVER["REQUEST_URI"]))
{
 $scriptName = $_SERVER["REQUEST_URI"];
 $nowurl = $scriptName;
}
else
{
 $scriptName = $_SERVER["PHP_SELF"];
 if(empty($_SERVER["QUERY_STRING"]))
 {
  $nowurl = $scriptName;
 }
 else
 {
  $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
 }
}
return $nowurl;
}

//兼容php4
if(!function_exists('file_put_contents'))
{
function file_put_contents($n,$d)
{
 $f=@fopen($n,"w");
 if (!$f)
 {
  return false;
 }
 else
 {
  fwrite($f,$d);
  fclose($f);
  return true;
 }
}
}

//返回格林威治标准时间
function MyDate($format='Y-m-d H:i:s',$timest=0)
{
global $cfg_cli_time;
$addtime = $cfg_cli_time * 3600;
if(empty($format))
{
 $format = 'Y-m-d H:i:s';
}
return gmdate ($format,$timest+$addtime);
}

function GetAlabNum($fnum)
{
$nums = array("0","1","2","3","4","5","6","7","8","9");
//$fnums = "0123456789";
$fnums = array("0","1","2","3","4","5","6","7","8","9");
$fnum = str_replace($nums,$fnums,$fnum);
$fnum = ereg_replace("[^0-9.-]",'',$fnum);
if($fnum=='')
{
 $fnum=0;
}
return $fnum;
}

function Html2Text($str,$r=0)
{
if(!function_exists('SpHtml2Text'))
{
 require_once(DEDEINC."/inc/inc_fun_funString.php");
}
if($r==0)
{
 return SpHtml2Text($str);
}
else
{
 $str = SpHtml2Text(stripslashes($str));
 return addslashes($str);
}
}

//文本转HTML
function Text2Html($txt)
{
$txt = str_replace("  "," ",$txt);
$txt = str_replace("<","&lt;",$txt);
$txt = str_replace(">","&gt;",$txt);
$txt = preg_replace("/[rn]{1,}/isU","<br/>rn",$txt);
return $txt;
}

function AjaxHead()
{
@header("Pragma:no-cachern");
@header("Cache-Control:no-cachern");
@header("Expires:0rn");
}

//中文截取2,单字节截取模式
//如果是request的内容,必须使用这个函数
function cn_substrR($str,$slen,$startdd=0)
{
$str = cn_substr(stripslashes($str),$slen,$startdd);
return addslashes($str);
}

//中文截取2,单字节截取模式
function cn_substr($str,$slen,$startdd=0)
{
global $cfg_soft_lang;
if($cfg_soft_lang=='utf-8')
{
 return cn_substr_utf8($str,$slen,$startdd);
}
$restr = '';
$c = '';
$str_len = strlen($str);
if($str_len < $startdd+1)
{
 return '';
}
if($str_len < $startdd + $slen || $slen==0)
{
 $slen = $str_len - $startdd;
}
$enddd = $startdd + $slen - 1;
for($i=0;$i<$str_len;$i++)
{
 if($startdd==0)
 {
  $restr .= $c;
 }
 else if($i > $startdd)
 {
  $restr .= $c;
 }

 if(ord($str[$i])>0x80)
 {
  if($str_len>$i+1)
  {
   $c = $str[$i].$str[$i+1];
  }
  $i++;
 }
 else
 {
  $c = $str[$i];
 }

 if($i >= $enddd)
 {
  if(strlen($restr)+strlen($c)>$slen)
  {
   break;
  }
  else
  {
   $restr .= $c;
   break;
  }
 }
}
return $restr;
}

//utf-8中文截取,单字节截取模式
function cn_substr_utf8($str, $length, $start=0)
{
if(strlen($str) < $start+1)
{
 return '';
}
preg_match_all("/./su", $str, $ar);
$str = '';
$tstr = '';

//为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取
for($i=0; isset($ar[0][$i]); $i++)
{
 if(strlen($tstr) < $start)
 {
  $tstr .= $ar[0][$i];
 }
 else
 {
  if(strlen($str) < $length + strlen($ar[0][$i]) )
  {
   $str .= $ar[0][$i];
  }
  else
  {
   break;
  }
 }
}
return $str;
}

function GetMkTime($dtime)
{
global $cfg_cli_time;
if(!ereg("[^0-9]",$dtime))
{
 return $dtime;
}
$dtime = trim($dtime);
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[rnt]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(!isset($ymd[1]))
{
 $ymd = explode(".",$ds[0]);
}
if(isset($ymd[0]))
{
 $dt[0] = $ymd[0];
}
if(isset($ymd[1]))
{
 $dt[1] = $ymd[1];
}
if(isset($ymd[2]))
{
 $dt[2] = $ymd[2];
}
if(strlen($dt[0])==2)
{
 $dt[0] = '20'.$dt[0];
}
if(isset($ds[1]))
{
 $hms = explode(":",$ds[1]);
 if(isset($hms[0]))
 {
  $dt[3] = $hms[0];
 }
 if(isset($hms[1]))
 {
  $dt[4] = $hms[1];
 }
 if(isset($hms[2]))
 {
  $dt[5] = $hms[2];
 }
}
foreach($dt as $k=>$v)
{
 $v = ereg_replace("^0{1,}",'',trim($v));
 if($v=='')
 {
  $dt[$k] = 0;
 }
}
$mt = @gmmktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]) - 3600 * $cfg_cli_time;
if(!empty($mt))
{
 return $mt;
}
else
{
 return time();
}
}

function SubDay($ntime,$ctime)
{
$dayst = 3600 * 24;
$cday = ceil(($ntime-$ctime)/$dayst);
return $cday;
}

function AddDay($ntime,$aday)
{
$dayst = 3600 * 24;
$oktime = $ntime + ($aday * $dayst);
return $oktime;
}

function GetDateTimeMk($mktime)
{
return MyDate('Y-m-d H:i:s',$mktime);
}

function GetDateMk($mktime)
{
if($mktime=="0") return "暂无";
else return MyDate("Y-m-d",$mktime);
}

function FloorTime($seconds)
{
$times = '';
$days = floor(($seconds/86400)0);
$hours = floor(($seconds/3600)$);
$minutes = floor(($seconds/60)`);
$seconds = floor($seconds`);
if($seconds >= 1) $times .= $seconds.'秒';
if($minutes >= 1) $times = $minutes.'分钟 '.$times;
if($hours >= 1) $times = $hours.'小时 '.$times;
if($days >= 1)  $times = $days.'天';
if($days > 30) return false;
$times .= '前';
return str_replace(" ", '', $times);
}

function GetIP()
{
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
 $cip = $_SERVER["HTTP_CLIENT_IP"];
}
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
 $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else if(!empty($_SERVER["REMOTE_ADDR"]))
{
 $cip = $_SERVER["REMOTE_ADDR"];
}
else
{
 $cip = '';
}
preg_match("/[d.]{7,15}/", $cip, $cips);
$cip = isset($cips[0]) ? $cips[0] : 'unknown';
unset($cips);
return $cip;
}

function dd2char($ddnum)
{
$ddnum = strval($ddnum);
$slen = strlen($ddnum);
$okdd = '';
$nn = '';
for($i=0;$i<$slen;$i++)
{
 if(isset($ddnum[$i+1]))
 {
  $n = $ddnum[$i].$ddnum[$i+1];
  if( ($n>96 && $n<123) || ($n>64 && $n<91) )
  {
   $okdd .= chr($n);
   $i++;
  }
  else
  {
   $okdd .= $ddnum[$i];
  }
 }
 else
 {
  $okdd .= $ddnum[$i];
 }
}
return $okdd;
}

function PutCookie($key,$value,$kptime=0,$pa="/")
{
global $cfg_cookie_encode;
setcookie($key,$value,time()+$kptime,$pa);
setcookie($key.'__ckMd5',substr(md5($cfg_cookie_encode.$value),0,16),time()+$kptime,$pa);
}

function DropCookie($key)
{
setcookie($key,'',time()-360000,"/");
setcookie($key.'__ckMd5','',time()-360000,"/");
}

function GetCookie($key)
{
global $cfg_cookie_encode;
if( !isset($_COOKIE[$key]) || !isset($_COOKIE[$key.'__ckMd5']) )
{
 return '';
}
else
{
 if($_COOKIE[$key.'__ckMd5']!=substr(md5($cfg_cookie_encode.$_COOKIE[$key]),0,16))
 {
  return '';
 }
 else
 {
  return $_COOKIE[$key];
 }
}
}

function FtpMkdir($truepath,$mmode,$isMkdir=true)
{
global $cfg_basedir,$cfg_ftp_root,$g_ftpLink;
OpenFtp();
$ftproot = ereg_replace($cfg_ftp_root.'$','',$cfg_basedir);
$mdir = ereg_replace('^'.$ftproot,'',$truepath);
if($isMkdir)
{
 ftp_mkdir($g_ftpLink,$mdir);
}
return ftp_site($g_ftpLink,"chmod $mmode $mdir");
}

function FtpChmod($truepath,$mmode)
{
return FtpMkdir($truepath,$mmode,false);
}

function OpenFtp()
{
global $cfg_basedir,$cfg_ftp_host,$cfg_ftp_port, $cfg_ftp_user,$cfg_ftp_pwd,$cfg_ftp_root,$g_ftpLink;
if(!$g_ftpLink)
{
 if($cfg_ftp_host=='')
 {
  echo "由于你的站点的PHP配置存在限制,程序尝试用FTP进行目录操作,你必须在后台指定FTP相关的变量!";
  exit();
 }
 $g_ftpLink = ftp_connect($cfg_ftp_host,$cfg_ftp_port);
 if(!$g_ftpLink)
 {
  echo "连接FTP失败!";
  exit();
 }
 if(!ftp_login($g_ftpLink,$cfg_ftp_user,$cfg_ftp_pwd))
 {
  echo "登陆FTP失败!";
  exit();
 }
}
}

function CloseFtp()
{
global $g_ftpLink;
if($g_ftpLink)
{
 @ftp_quit($g_ftpLink);
}
}

function MkdirAll($truepath,$mmode)
{
global $cfg_ftp_mkdir,$isSafeMode,$cfg_dir_purview;
if($isSafeMode||$cfg_ftp_mkdir=='Y')
{
 return FtpMkdir($truepath,$mmode);
}
else
{
 if(!file_exists($truepath))
 {
  mkdir($truepath,$cfg_dir_purview);
  chmod($truepath,$cfg_dir_purview);
  return true;
 }
 else
 {
  return true;
 }
}
}

function ParCv($n)
{
return chr($n);
}

function ChmodAll($truepath,$mmode)
{
global $cfg_ftp_mkdir,$isSafeMode;
if($isSafeMode||$cfg_ftp_mkdir=='Y')
{
 return FtpChmod($truepath,$mmode);
}
else
{
 return chmod($truepath,'0'.$mmode);
}
}

function CreateDir($spath)
{
if(!function_exists('SpCreateDir'))
{
 require_once(DEDEINC.'/inc/inc_fun_funAdmin.php');
}
return SpCreateDir($spath);
}

// $rptype = 0 表示仅替换 html标记
// $rptype = 1 表示替换 html标记同时去除连续空白字符
// $rptype = 2 表示替换 html标记同时去除所有空白字符
// $rptype = -1 表示仅替换 html危险的标记
function HtmlReplace($str,$rptype=0)
{
$str = stripslashes($str);
if($rptype==0)
{
 $str = htmlspecialchars($str);
}
else if($rptype==1)
{
 $str = htmlspecialchars($str);
 $str = str_replace(" ",' ',$str);
 $str = ereg_replace("[rnt ]{1,}",' ',$str);
}
else if($rptype==2)
{
 $str = htmlspecialchars($str);
 $str = str_replace(" ",'',$str);
 $str = ereg_replace("[rnt ]",'',$str);
}
else
{
 $str = ereg_replace("[rnt ]{1,}",' ',$str);
 $str = eregi_replace('script','script',$str);
 $str = eregi_replace("<[/]{0,1}(link|meta|ifr|fra)[^>]*>",'',$str);
}
return addslashes($str);
}

//过滤用于搜索的字符串
function FilterSearch($keyword)
{
global $cfg_soft_lang;
if($cfg_soft_lang=='utf-8')
{
 $keyword = ereg_replace("["rnt$><']",'',$keyword);
 if($keyword != stripslashes($keyword))
 {
  return '';
 }
 else
 {
  return $keyword;
 }
}
else
{
 $restr = '';
 for($i=0;isset($keyword[$i]);$i++)
 {
  if(ord($keyword[$i]) > 0x80)
  {
   if(isset($keyword[$i+1]) && ord($keyword[$i+1]) > 0x40)
   {
    $restr .= $keyword[$i].$keyword[$i+1];
    $i++;
   }
   else
   {
    $restr .= ' ';
   }
  }
  else
  {
   if(eregi("[^0-9a-z@#.]",$keyword[$i]))
   {
    $restr .= ' ';
   }
   else
   {
    $restr .= $keyword[$i];
   }
  }
 }
}
return $restr;
}

//处理禁用HTML但允许换行的内容
function TrimMsg($msg)
{
$msg = trim(stripslashes($msg));
$msg = nl2br(htmlspecialchars($msg));
$msg = str_replace("  ","&nbsp;&nbsp;",$msg);
return addslashes($msg);
}

//邮箱格式检查
function CheckEmail($email)
{
return eregi("^[0-9a-z][a-z0-9._-]{1,}@[a-z0-9-]{1,}[a-z0-9].[a-z.]{1,}[a-z]$", $email);
}

标签:
上一篇:
下一篇: