欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP幾個(gè)實(shí)用自定義函數(shù)小結(jié)

 更新時(shí)間:2016年01月25日 09:21:52   作者:海底蒼鷹  
這篇文章主要介紹了PHP幾個(gè)實(shí)用自定義函數(shù),結(jié)合實(shí)例總結(jié)分析了PHP網(wǎng)絡(luò)操作、字符串操作、時(shí)間操作及正則表達(dá)式使用等技巧,需要的朋友可以參考下

本文實(shí)例總結(jié)了PHP幾個(gè)實(shí)用自定義函數(shù)。分享給大家供大家參考,具體如下:

最近在看代碼,發(fā)現(xiàn)以下是幾個(gè)比較實(shí)用的函數(shù)。

1、取客戶端IP

function getOnlineIp() {
  $strOnlineIp = "";
  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);
  $strOnlineIp = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
  return $strOnlineIp;
}

這里,如果使用多級代理的用戶,真實(shí)IP是取不到的。

2、字符串截取,支持中文

function getStrTruncate($string, $length = 80, $etc = ''){
  if ($length == 0) return '';
  mb_internal_encoding("UTF-8");
  $string = str_replace("\n","",$string);
  $strlen = mb_strwidth($string);
  if ($strlen > $length) {
    $etclen = mb_strwidth($etc);
    $length = $length - $etclen;
    $str=''; $n = 0;
    for($i=0; $i<$length; $i++) {
      $c = mb_substr($string, $i, 1);
      $n += mb_strwidth($c);
      if ($n>$length) { break; }
      $str .= $c;
    }
    return $str.$etc;
  } else {
    return $string;
  }
}
echo getStrTruncate("海底蒼鷹博客",7); //結(jié)果是海底蒼,utf8一個(gè)漢字對應(yīng)二個(gè)字符

3、多長時(shí)間前的時(shí)間函數(shù),論壇,博客常用

function timeFromNow($dateline) {
  if(emptyempty($dateline)) return false;
  $seconds = time() - $dateline;
  if ($seconds < 60){
    return "1分鐘前";
  }elseif($seconds < 3600){
    return floor($seconds/60)."分鐘前";
  }elseif($seconds < 24*3600){
    return floor($seconds/3600)."小時(shí)前";
  }elseif($seconds < 48*3600){
    return date("昨天 H:i", $dateline)."";
  }else{
    return date('Y-m-d', $dateline);
  }
}
echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15
echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前

4、過濾部分標(biāo)簽

function delTags($str)
{
  $farr = array(
  "/<(\/?)(script|i?frame|style|html|body|title|link|meta|form|input|embed|object|textarea|\?|\%)([^>]*?)>/isU",
  "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU"
  );
  $tarr = array(
  "",
  ""
  );
  $str = preg_replace( $farr,$tarr,$str);
  return $str;
}
$str = "<a href='#'>asdfasdfsd</a>====<script>alert(1111)</script>";
echo delTags($str);  //結(jié)果:<a href='#'>asdfasdfsd</a>====alert(1111)
echo strip_tags($str); //結(jié)果:sdfasdfsd====alert(1111)

如果要過濾所有標(biāo)簽strip_tags就夠用了。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《php常用函數(shù)與技巧總結(jié)

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論