PHP幾個實用自訂函數小結,php自訂函數小結
本文執行個體總結了PHP幾個實用自訂函數。分享給大家供大家參考,具體如下:
最近在看代碼,發現以下是幾個比較實用的函數。
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 = "asdfasdfsd====";echo delTags($str); //結果:asdfasdfsd====alert(1111)echo strip_tags($str); //結果:sdfasdfsd====alert(1111)
如果要過濾所有標籤strip_tags就夠用了。
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基本文法入門教程》、《php物件導向程式設計入門教程》及《php常用函數與技巧總結》
希望本文所述對大家PHP程式設計有所協助。
您可能感興趣的文章:
- ThinkPHP自訂函數解決模板標籤加減運算的方法
- PHP中產生UUID自訂函數分享
- PHP隨機產生唯一HASH值自訂函數
- PHP實現的下載遠程圖片自訂函數分享
- PHP跨平台擷取伺服器IP地址自訂函數分享
- PHP統計目錄大小的自訂函數分享
- PHP遞迴複製、移動目錄的自訂函數分享
- ThinkPHP模板之變數輸出、自訂函數與判斷語句用法
- PHP實現手機號碼中間四位用星號(*)隱藏的自訂函數分享
- PHP採用自訂函數實現遍曆目錄下所有檔案的方法
- 把文本中的URL地址轉換為可點選連結的JavaScript、PHP自訂函數
- PHP產生等比縮圖類和自訂函數分享
- php自訂函數截取漢字長度
- php產生隨機密碼自訂函數代碼(簡單快速)
http://www.bkjia.com/PHPjc/1095689.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1095689.htmlTechArticlePHP幾個實用自訂函數小結,php自訂函數小結 本文執行個體總結了PHP幾個實用自訂函數。分享給大家供大家參考,具體如下: 最近在看代...