字符串

2020-04-10  本文已影响0人  若初_终点

if(!function_exists('random_string')) {
    /**
     * 获取随机字符串
     * @param int $randLength           长度
     * @param int $includeNumber        1 包含数字
     * @param int $includeLLetters      1 包含小写字母
     * @param int $includeULetters      1 包含大写字母
     * @param int $specialCharacters    1 包含特殊字符
     * @return string
     */
    function random_string($randLength=6,$includeNumber=0,$includeLLetters=0,$includeULetters=0,$specialCharacters=0)
    {
        $chars = '';
        if ($includeLLetters == 1){
            $chars .= 'abcdefghijklmnopqrstuvwxyz';
        }
        if ($includeNumber == 1){
            $chars .= '123456789';
        }
        if ($includeULetters == 1){
            $chars .= 'ABCDEFGHJKLMNPQEST';
        }
        if ($specialCharacters == 1){
            $chars .= '!@#$%&*-_+=|^(){}[]:;,.?';
        }
        $len = strlen($chars);
        $randStr = '';
        for ($i=0;$i<$randLength;$i++){
            $randStr .= $chars[mt_rand(0,$len-1)];
        }
        return $randStr;
    }
}


/**
 * 字符串截取,支持中文和其他编码
 * @param string $str 需要转换的字符串
 * @param string $start 开始位置
 * @param string $length 截取长度
 * @param string $charset 编码格式
 * @param string $suffix 截断显示字符
 * @return string
 */
function stringsubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
    if(function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif(function_exists('iconv_substr')) {
        $slice = iconv_substr($str,$start,$length,$charset);
        if(false === $slice) {
            $slice = '';
        }
    }else{
        $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("",array_slice($match[0], $start, $length));
    }
    return $suffix ? $slice.'...' : $slice;
}

/**
 * 按符号截取字符串的指定部分
 * @param string $str 需要截取的字符串
 * @param string $sign 需要截取的符号
 * @param int $number 如是正数以0为起点从左向右截  负数则从右向左截 为数组的key
 * @return string 返回截取的内容
 */
function cut_str($str,$sign,$number){
    $array=explode($sign, $str);
    $length=count($array);
    if($number<0){
        $new_array=array_reverse($array);
        $abs_number=abs($number);
        if($abs_number>$length){
            return 'error';
        }
        else{
            return $new_array[$abs_number-1];
        }
    }
    else{
        if($number>=$length){
            return 'error';
        }
        else{
            return $array[$number];
        }
    }
}

----------------------------------------------------------------------------------------------------------------
上一篇 下一篇

猜你喜欢

热点阅读