替换字符串中间部分为*


/**
* 使用$replace替换字符串的中间部分
*/
function replaceCenterWithChar($str, $replace = "*", $leftLen = 2, $rightLen = 2, $replaceLen = 3) {
        $length = mb_strlen($str, "utf-8");
        if ($length <= 1) {
            return $str;
        } elseif ($length == 2) {
            return mb_substr($str, 0, 1, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, 1, 1, "utf-8");
        } elseif ($length < $leftLen) {
            return $str;
        } elseif ($length == $leftLen) {
            return mb_substr($str, 0, $leftLen - 1, "utf-8").($replace, $replaceLen).mb_substr($str, $length - 1, 1, "utf-8");
 } elseif ($length < ($leftLen+$rightLen)) { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $leftLen, $length - $leftLen, "utf-8"); } elseif ($length > $rightLen) { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $length - $rightLen, $rightLen,  "utf-8"); } else { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $length - $leftLen, $rightLen,  "utf-8"); } }
mb_strlen — 获取字符串的长度
mb_substr ( string $str , int $start , int $length = NULL , string $encoding = mb_internal_encoding() ) : string
根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。
str_repeat() 函数把字符串重复指定的次数。
str_repeat(string,repeat)
echo str_repeat("Shanghai ",5);
Shanghai Shanghai Shanghai Shanghai Shanghai

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM