PHP에서 str_replace 는 문자열 내의 모든 문자를 치환하잖아요? 이걸 최초 1회만 치환하고싶습니다.

ind04370의 이미지

<?php
$a = "aaaaa";
echo str_replace("a", "b", $a);
?>
이걸 실행하면
bbbbb 라고 나올텐데요
abbbb 라고 나오도록 최초 1번만 치환하고싶습니다.
고수님들의 도움을 기다립니다.

꼭 str_replace 함수를 사용할 필요는 없고
정규표현식을 사용해도 괜찮고
어떠한 함수를 이용해도 괜찮습니다.

ind04370의 이미지

죄송합니다 (__)
삭제는 어떻게 하나요?

익명 사용자의 이미지

낙장불입죠

bacon의 이미지

많은 방법이야 있겠지만

function str_replace_first ($needle, $replacement, $haystack)
{
        return substr_replace ($haystack, $replacement, strpos($haystack, $needle), strlen($needle));
}
echo str_replace_first ("a", "b", $a);

정규표현식이라면... echo preg_replace("/a/", "b", $a, 1);