国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:42:25
字體:
供稿:網(wǎng)友

這篇文章主要介紹了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

  1. function getOnlineIp() { 
  2.   $strOnlineIp = ""
  3.   if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 
  4.     $onlineip = getenv('HTTP_CLIENT_IP'); 
  5.   } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { 
  6.     $onlineip = getenv('HTTP_X_FORWARDED_FOR'); 
  7.   } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { 
  8.     $onlineip = getenv('REMOTE_ADDR'); 
  9.   } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { 
  10.     $onlineip = $_SERVER['REMOTE_ADDR']; 
  11.   } 
  12.   preg_match("/[/d/.]{7,15}/"$onlineip$onlineipmatches); 
  13.   $strOnlineIp = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown'
  14.   return $strOnlineIp

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

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

  1. function getStrTruncate($string$length = 80, $etc = ''){ 
  2.   if ($length == 0) return ''
  3.   mb_internal_encoding("UTF-8"); 
  4.   $string = str_replace("/n","",$string); 
  5.   $strlen = mb_strwidth($string); 
  6.   if ($strlen > $length) { 
  7.     $etclen = mb_strwidth($etc); 
  8.     $length = $length - $etclen
  9.     $str=''$n = 0; 
  10.     for($i=0; $i<$length$i++) { 
  11.       $c = mb_substr($string$i, 1); 
  12.       $n += mb_strwidth($c); 
  13.       if ($n>$length) { break; } 
  14.       $str .= $c
  15.     } 
  16.     return $str.$etc
  17.   } else { 
  18.     return $string
  19.   } 

echo getStrTruncate("海底蒼鷹博客",7); //結(jié)果是海底蒼,utf8一個(gè)漢字對(duì)應(yīng)二個(gè)字符

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

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

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

  1. function delTags($str
  2.   $farr = array
  3.   "/<(//?)(script|i?frame|style|html|body|title|link|meta|form|input|embed|object|textarea|/?|/%)([^>]*?)>/isU"
  4.   "/(<[^>]*)on[a-zA-Z]+/s*=([^>]*>)/isU" 
  5.   ); 
  6.   $tarr = array
  7.   ""
  8.   "" 
  9.   ); 
  10.   $str = preg_replace( $farr,$tarr,$str); 
  11.   return $str
  12. $str = "<a href='#'>asdfasdfsd</a>====<script>alert(1111)</script>"
  13. echo delTags($str);  //結(jié)果:<a href='#'>asdfasdfsd</a>====alert(1111) 
  14. echo strip_tags($str); //結(jié)果:sdfasdfsd====alert(1111) 

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潞城市| 台州市| 芜湖县| 南木林县| 鄄城县| 横山县| 大兴区| 乌拉特前旗| 章丘市| 浮梁县| 吉林市| 新乡县| 湖口县| 新乐市| 德阳市| 松阳县| 兴宁市| 南开区| 集贤县| 米林县| 瓦房店市| 安丘市| 区。| 葫芦岛市| 玉山县| 和田市| 黄平县| 阿瓦提县| 威信县| 房产| 松阳县| 廊坊市| 大兴区| 千阳县| 册亨县| 桦南县| 临朐县| 同心县| 孟连| 舞阳县| 商城县|