本文实例总结了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:15 echo 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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/7304
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我