替换字符串的最后七个字符

Mr.*_*1.0 3 php

我有一个字符串,我想用"#"替换字符串的最后7个字符.例如,我有"MerryChristmasu87yujh7"我想用七个"#######"替换"87yujh7".因此,最后的字符串将是"MerryChristmasu #######".

我尝试了以下代码,但它返回"MerryChristmasu ####### 1".它不会转换所有七个结束字符.

$string = "MerryChristmasu87yujh7";
$match = substr($string, -7, -1);
$result = str_replace($match, "#######", $string);
Run Code Online (Sandbox Code Playgroud)

rai*_*7ow 8

应该...

$match = substr($string, -7);
Run Code Online (Sandbox Code Playgroud)

......没有最后的-1.但事实上,用...做得好得多

$result = substr($string, 0, -7) . str_repeat('#', 7);
Run Code Online (Sandbox Code Playgroud)

......或更通用的:

$coverWith = function($string, $char, $number) {
  return substr($string, 0, -$number) . str_repeat($char, $number);
};
Run Code Online (Sandbox Code Playgroud)