分类 默认 下的文章

function hideStr($string, $bengin = 0, $len = 4, $type = 0, $glue = "@"){

if (empty($string))
    return false;
$array = array();
if ($type == 0 || $type == 1 || $type == 4) {
    $strlen = $length = mb_strlen($string);
    while ($strlen) {
        $array[] = mb_substr($string, 0, 1, "utf8");
        $string = mb_substr($string, 1, $strlen, "utf8");
        $strlen = mb_strlen($string);
    }
}
if ($type == 0) {
    for ($i = $bengin; $i < ($bengin + $len); $i++) {
        if (isset($array[$i]))
            $array[$i] = "*";
    }
    $string = implode("", $array);
} else if ($type == 1) {
    $array = array_reverse($array);
    for ($i = $bengin; $i < ($bengin + $len); $i++) {
        if (isset($array[$i]))
            $array[$i] = "*";
    }
    $string = implode("", array_reverse($array));
} else if ($type == 2) {
    $array = explode($glue, $string);
    $array[0] = hideStr($array[0], $bengin, $len, 1);
    $string = implode($glue, $array);
} else if ($type == 3) {
    $array = explode($glue, $string);
    $array[1] = hideStr($array[1], $bengin, $len, 0);
    $string = implode($glue, $array);
} else if ($type == 4) {
    $left = $bengin;
    $right = $len;
    $tem = array();
    for ($i = 0; $i < ($length - $right); $i++) {
        if (isset($array[$i]))
            $tem[] = $i >= $left ? "*" : $array[$i];
    }
    $array = array_chunk(array_reverse($array), $right);
    $array = array_reverse($array[0]);
    for ($i = 0; $i < $right; $i++) {
        $tem[] = $array[$i];
    }
    $string = implode("", $tem);
}
return $string;

}
$str = '12345678901';
echo hideStr($str,2,4);


将一个字符串部分字符用*替代隐藏

@param string $string 待转换的字符串
@param int $bengin 起始位置,从0开始计数,当$type=4时,表示左侧保留长度
@param int $len 需要转换成*的字符个数,当$type=4时,表示右侧保留长度
@param int $type 转换类型:0,从左向右隐藏;1,从右向左隐藏;2,从指定字符位置分割前由右向左隐藏;3,从指定字符位置分割后由左向右隐藏;4,保留首末指定字符串

@param string $glue 分割符

@return string 处理后的字符串

TEL----电话
TITLE---职位
ROLE---职称
N----姓名
ORG----组织
ADR----地址
EMAIL---邮箱
URL----个人主页

在处理订单编号的时候,需要固定位数的数字,比如需要固定四位数格式

1->0001
56->0056
288->0288
1992->1992

可以使用php内置函数str_pad() 函数把字符串填充为新的长度。

str_pad(string,length,pad_string,pad_type)
//参数 描述
string //必需。规定要填充的字符串。
length //必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string //可选。规定供填充使用的字符串。默认是空白。
pad_type //可选。规定填充字符串的哪边。

        //可能的值:
        STR_PAD_BOTH - //填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
        STR_PAD_LEFT - //填充字符串的左侧。
        STR_PAD_RIGHT - //填充字符串的右侧。默认。

例子:

$num=128;
$num=str_pad($num,4,"0",STR_PAD_LEFT);
echo $num;

输出
0128