4個php實用自訂函數匯總

來源:互聯網
上載者:User
這篇文章主要介紹了PHP幾個實用自訂函數,結合執行個體總結分析了PHP網路操作、字串操作、時間操作及Regex使用等技巧,需要的朋友可以參考下

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;}

這裡,如果使用多級代理的使用者,真實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); //結果是海底蒼,utf8一個漢字對應二個字元

3、多長時間前的時間函數,論壇,部落格常用

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)."小時前";  }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:15echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前

4、過濾部分標籤

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);  //結果:<a href='#'>asdfasdfsd</a>====alert(1111)echo strip_tags($str); //結果:sdfasdfsd====alert(1111)

如果要過濾所有標籤strip_tags就夠用了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.