PHP截取字符串长度及客户端真实IP的函数

timg.jpg

        PHP截取字符串长度函数经常用到,超过一定的长度显示为"....",当然,这个效果也可以用css样式控制,我之前也有发过用css截取的,想看的朋友们可以去找一下!今天主要说的是php的函数实现方法!

/*
 Utf-8、gb2312都支持的汉字截取函数
 cut_str(字符串, 截取长度, 开始长度, 编码);
 编码默认为 utf-8
 开始长度默认为 0
*/
function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){
    if($code == 'UTF-8'){
        $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
        preg_match_all($pa, $string, $t_string);
 
        if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
        return join('', array_slice($t_string[0], $start, $sublen));
    }else{
        $start = $start*2;
        $sublen = $sublen*2;
        $strlen = strlen($string);
        $tmpstr = '';
 
        for($i=0; $i<$strlen; $i++){
            if($i>=$start && $i<($start+$sublen)){
                if(ord(substr($string, $i, 1))>129){
                    $tmpstr.= substr($string, $i, 2);
                }else{
                    $tmpstr.= substr($string, $i, 1);
                }
            }
            if(ord(substr($string, $i, 1))>129) $i++;
        }
        if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
        return $tmpstr;
    }
}
今天介绍的另一个函数是PHP获取用户真实IP,函数如下:


//获取用户真实IP
function getIp() {
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
        $ip = getenv("HTTP_CLIENT_IP");
    else
        if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        else
            if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                $ip = getenv("REMOTE_ADDR");
            else
                if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
                    $ip = $_SERVER['REMOTE_ADDR'];
                else
                    $ip = "unknown";
    return ($ip);
}



版权声明:除非注明,文章均为【卢杰个人博客】原创,欢迎转载!转载请注明本文地址,谢谢!

作者:卢杰个人博客

本人学识渊博,经验丰富,代码风骚,效率恐怖,C/C++、Java、php无不精通;熟练掌握各种框架,会DDOS一秒钟死一个站,会注入,会上传,会Xss,会破解,会嗅探,会开发,会业务,会运维,会渗透,调戏客服MM,无不精通,全面漏洞认识深刻,熟练掌握各种渗透理论,各种操作系统内核,一天只睡4小时,脾气好,不喷人,操作虎,意识强,渗透快,shell多,能过狗,能过盾,听指挥。千里之外取服务器首级,瞬息之间爆管理员,压安全狗如压草芥,电话通知出bug后,千里之外定位问题,瞬息之间修复上线。身体强壮,健步如飞可

返回列表
上一篇:
下一篇:

发表评论

快捷回复: