>백엔드 개발 >PHP 튜토리얼 >PHP에서 구분 기호 사이의 하위 문자열을 효율적으로 추출하려면 어떻게 해야 합니까?

PHP에서 구분 기호 사이의 하위 문자열을 효율적으로 추출하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-17 09:36:25853검색

How Can I Efficiently Extract Substrings Between Delimiters in PHP?

PHP에서 구분 기호 사이의 하위 문자열 찾기

개발자는 특정 구분 기호 사이에 삽입된 하위 문자열을 추출해야 하는 경우가 종종 있습니다. PHP는 복잡한 정규식을 사용하지 않고도 이 작업을 수행할 수 있는 간단한 방법을 제공합니다.

GetInnerSubstring 함수

프로세스를 단순화하기 위해 PHP 개발자는 strpos 및 substr 함수를 활용할 수 있습니다. 사용자 정의된 getInnerSubstring 함수를 생성합니다. 작동 방식은 다음과 같습니다.

  1. 구분 기호 위치 식별: 이 함수는 문자열($string)과 구분 기호($delim)라는 두 가지 인수를 사용합니다. strpos를 활용하여 문자열 내에서 구분 기호의 첫 번째와 마지막 항목을 찾습니다.
  2. 하위 문자열 추출: 구분 기호 위치가 식별되면 코드는 substr을 사용하여 해당 구분 기호 사이에서 원하는 하위 문자열을 분할합니다. position.
  3. 사용 예: 두 구분 기호 사이의 하위 문자열을 추출하려면 다음을 호출하면 됩니다. $substring = getInnerSubstring($string, $delim). 예를 들어, $string = "foo I want a cake foo"인 경우 getInnerSubstring($string, "foo")는 " I Wanna a cake "를 반환합니다.

여러 구분 기호로 확장

getInnerSubstring 함수를 확장하여 동일한 구분 기호가 여러 번 나타나는 것을 배열로 분리하여 처리할 수 있습니다. 수정된 코드는 다음과 같습니다.

function getInnerSubstring($string, $delim) {
    $start_pos = strpos($string, $delim);
    $result = array();
    while ($start_pos !== false) {
        $end_pos = strpos($string, $delim, $start_pos + strlen($delim));
        if ($end_pos === false) break;
        $result[] = substr($string, $start_pos + strlen($delim), $end_pos - $start_pos - strlen($delim));
        $start_pos = strpos($string, $delim, $end_pos);
    }
    return $result;
}

사용 예:

$string = "foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";

$result = getInnerSubstring($string, "foo");

print_r($result);
// Output: [" I like php ", " I also like asp ", " I feel hero "]

이 확장 버전을 사용하면 여러 구분 기호 사이에 있는 하위 문자열 배열을 검색할 수 있습니다. .

위 내용은 PHP에서 구분 기호 사이의 하위 문자열을 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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