本文实例总结了PHP几个实用自定义函数。分享给大家供大家参考,具体如下:
最近在看代码,发现以下是几个比较实用的函数。
1、取客户端IPfunction 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("
","",$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就够用了。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php常用函数与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。