A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > PHP几个实用自定义函数小结

PHP几个实用自定义函数小结

时间:2016-01-26 14:09作者:fang人气:41

本文实例总结了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,几个,实用,自定义,函数,小结,本文,实例,结了,P

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号