/**
* 替换字符串的中间部分
* @param $str string 输入字符串
* @param $replaceChar string 要替换的单个字符
* @param $leftLen int 左边保留正常显示的长度
* @param $rightLen int 右面保留正常显示的长度
* @param $notEnoughReplace bool 计算后要替换的字符串长度不足时,输入的字符串是否进行整体替换
* @return string
*/
function strReplaceMiddle($str, $replaceChar = '*', $leftLen = 3, $rightLen = 3, $notEnoughReplace = true)
{
$len = mb_strlen($str);
$replaceLen = $len - $leftLen - $rightLen;
if ($replaceLen > 0) {
$replaceStr = str_repeat($replaceChar, $replaceLen);
} else {
//计算后要替换的字符串长度不足时,$replaceLen = $len - $frontLen - $backLen;
$replaceStr = str_repeat($replaceChar, $len);
return $notEnoughReplace ? $replaceStr : $str;
}
return mb_substr($str, 0, $leftLen) . $replaceStr . mb_substr($str, $leftLen + $replaceLen);
}
/**
demo
"卡号11138162993;卡密A839100416104B"
"卡号11138162**********100416104B"
*/
支持中文,中文算1个长度