>백엔드 개발 >PHP 튜토리얼 >PHP에서 부분 문자열의 첫 번째(또는 마지막) 발생만 바꿀 수 있습니까?

PHP에서 부분 문자열의 첫 번째(또는 마지막) 발생만 바꿀 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-17 12:17:24327검색

How Can I Replace Only the First (or Last) Occurrence of a Substring in PHP?

str_replace로 첫 번째 항목만 바꾸기

첫 번째 항목으로 교체를 제한하는 내장 str_replace 함수는 없지만 상대적으로 복잡한 해킹에 의존하지 않고도 간단한 솔루션이 존재합니다.

이를 달성하려면 strpos 함수를 사용하여 기본 문자열 내에서 하위 문자열의 위치를 ​​찾습니다. 식별되면 substr_replace를 사용하여 원래 문자열을 수정하고 발생 위치와 하위 문자열 길이를 지정합니다. 이 방법은 정규 표현식의 오버헤드 없이 첫 번째 항목을 효율적으로 대체합니다.

코드 예:

$haystack = "This is a sample string";
$needle = "is";
$replace = "was";

$pos = strpos($haystack, $needle);
if ($pos !== false) {
    $newstring = substr_replace($haystack, $replace, $pos, strlen($needle));
}

echo $newstring; // Output: "This was a sample string"

보너스: 마지막 항목을 바꾸려면 발생 시 strpos를 strrpos로 대체합니다:

$pos = strrpos($haystack, $needle);
if ($pos !== false) {
    $newstring = substr_replace($haystack, $replace, $pos, strlen($needle));
}

위 내용은 PHP에서 부분 문자열의 첫 번째(또는 마지막) 발생만 바꿀 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.