3

文字列があり、文字列の最後の 7 文字を "#" に置き換えたいと考えています。たとえば、"MerryChristmasu87yujh7" があり、"87yujh7" を 7 つの "#######" に置き換えたいとします。したがって、最後の文字列は「MerryChristmasu#######」になります。

次のコードを試してみましたが、「MerryChristmasu#######1」が返されます。7 つの末尾文字すべてが変換されるわけではありません。

$string = "MerryChristmasu87yujh7";
$match = substr($string, -7, -1);
$result = str_replace($match, "#######", $string);
4

2 に答える 2

8

する必要があります...

$match = substr($string, -7);

...最後の-1なし。しかし、実際には、それははるかに優れています...

$result = substr($string, 0, -7) . str_repeat('#', 7);

...または、より一般的:

$coverWith = function($string, $char, $number) {
  return substr($string, 0, -$number) . str_repeat($char, $number);
};
于 2012-12-20T18:04:32.477 に答える
1
$cuttedString = substr("your string", -7);

これでうまくいくはずです。

于 2012-12-20T18:05:50.893 に答える