2012-12-20 3 views
2

문자열이 있는데 문자열의 마지막 7자를 "#"으로 바꿉니다. 예를 들어 "MerryChristmasu87yujh7"이 있는데 "87yujh7"을 7 개의 "#######"로 바꾸고 싶습니다. 마지막 문자열은 "MerryChristmasu #######"입니다.은 문자열의 마지막 7자를 대체합니다.

다음 코드를 시도했지만 "MerryChristmasu ######## 1"을 반환합니다. 7 개의 끝 문자는 모두 변환하지 않습니다.

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

답변

7

이어야한다 ... 최종 -1없이

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

.... 그러나 사실, 훨씬 더 더 일반적인와 함께 ...

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

수행 ... 또는 것 :

$coverWith = function($string, $char, $number) { 
    return substr($string, 0, -$number) . str_repeat($char, $number); 
}; 
+0

도와 주셔서 감사합니다. 아름답게 작동합니다. :) –

1
$cuttedString = substr("your string", -7); 

이 작업을 수행해야합니다.

관련 문제