PHP几个实用自定义函数小结
本文实例总结了PHP几个实用自定义函数。分享给大家供大家参考,具体如下:
最近在看代码,发现以下是几个比较实用的函数。
1、取客户端IP
functiongetOnlineIp(){ $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、字符串截取,支持中文
functiongetStrTruncate($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; } } echogetStrTruncate("海底苍鹰博客",7);//结果是海底苍,utf8一个汉字对应二个字符
3、多长时间前的时间函数,论坛,博客常用
functiontimeFromNow($dateline){ if(emptyempty($dateline))returnfalse; $seconds=time()-$dateline; if($seconds<60){ return"1分钟前"; }elseif($seconds<3600){ returnfloor($seconds/60)."分钟前"; }elseif($seconds<24*3600){ returnfloor($seconds/3600)."小时前"; }elseif($seconds<48*3600){ returndate("昨天H:i",$dateline).""; }else{ returndate('Y-m-d',$dateline); } } echotimeFromNow(strtotime("2012-07-0714:15:13"));//昨天14:15 echotimeFromNow(strtotime("2012-07-0814:15:13"));//1小前
4、过滤部分标签
functiondelTags($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="<ahref='#'>asdfasdfsd</a>====<script>alert(1111)</script>"; echodelTags($str);//结果:<ahref='#'>asdfasdfsd</a>====alert(1111) echostrip_tags($str);//结果:sdfasdfsd====alert(1111)
如果要过滤所有标签strip_tags就够用了。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php常用函数与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。