현재 위치: > 최신 기사 목록> stripos에서 $ 오프셋 매개 변수의 기능 및 사용

stripos에서 $ 오프셋 매개 변수의 기능 및 사용

M66 2025-05-31

php에서 stripos ()는 한 문자열에서 사례에 민감하지 않은 다른 서브 스트링을 찾는 데 사용되는 매우 일반적인 기능입니다. 이 함수의 기본 사용은 매우 간단하지만 세 번째 매개 변수 인 $ 오프셋 은 종종 무시되거나 잘못 사용됩니다.

이 기사는 $ 오프셋 매개 변수, 사용 시나리오의 역할 및 스트링 검색의 효율성을 최적화하기 위해이를 사용하는 방법에 대해 자세히 소개합니다.

1. stripos () 함수 소개

구문은 다음과 같습니다.

 int|false stripos(string $haystack, string $needle, int $offset = 0)
  • $ haystack : 검색 할 문자열.

  • $ 바늘 : 찾을 수있는 서브 스트링.

  • $ 오프셋 (선택 사항) : 검색을 시작할 위치입니다.

반환 값 : 발견 된 경우 첫 번째 발생 위치 (0부터 시작)를 반환합니다. 찾을 수 없으면 false를 반환하십시오.

참고 : stripos () 는 케이스에 민감하지만 strpos ()는 케이스에 민감합니다.

2. $ 오프셋 매개 변수의 실제 사용

$ OFFSET 문자열의 시작부터 시작하는 하위 문자열 (즉, 위치 0)을 찾는 위치를 지정합니다.

이것은 다음 시나리오에서 특히 유용합니다.

1. 검색을 위해 알려진 내용을 건너 뜁니다

예를 들어, 텍스트 단락에서 두 번째로 나타나는 키워드를 찾고 있다고 가정 해 봅시다.

 $text = "방문에 오신 것을 환영합니다 m66.net,우리 웹 사이트는입니다 https://m66.net/page。";
$firstPos = stripos($text, "m66.net");
if ($firstPos !== false) {
    // 첫 등장 후 두 번째로 찾기 시작
    $secondPos = stripos($text, "m66.net", $firstPos + 1);
    echo "두 번째로 나타나는 것입니다:$secondPos";
}

산출:

 두 번째로 나타나는 것입니다:22

$ OFFSET = $ firstpos + 1을 설정하면 처음 나타나는 중복 일치를 피합니다.

2. 페이지 매김 검색 또는 단계별 포지셔닝을 구현하십시오

긴 문자열에서 여러 개의 동일한 하위 문자열을 찾을 때 "Paginated Searches"의 경우 루프와 $ 오프셋을 결합 할 수 있습니다.

 $content = "링크를 클릭하십시오 https://m66.net/a,다시 클릭하십시오 https://m66.net/b,마지막 방문 https://m66.net/c";
$needle = "https://m66.net/";
$offset = 0;

while (($pos = stripos($content, $needle, $offset)) !== false) {
    echo "위치를 찾으십시오:$pos\n";
    $offset = $pos + strlen($needle); // 나중에 계속 검색하십시오
}

산출:

 위치를 찾으십시오:6
위치를 찾으십시오:26
위치를 찾으십시오:47

이 방법은 데이터 분석, 텍스트 처리 및 로그 분석에서 여러 동일한 키워드를 배치하는 데 특히 적합합니다.

3. 성능 최적화 제안

텍스트의 특정 부분이 관련이 없거나 후반에만 관심이 있다는 것을 이미 알고 있다면, $ 오프셋을 사용하는 경우 특히 긴 문자열을 다룰 때 성능을 크게 향상시키고 불필요한 일치 시도를 피할 수 있습니다.

 $largeText = file_get_contents('large_text.txt');
$offset = strpos($largeText, '텍스트를 시작하십시오');
if ($offset !== false) {
    $startSearchFrom = $offset + strlen('텍스트를 시작하십시오');
    $pos = stripos($largeText, '키워드', $startSearchFrom);
    echo "키워드出现的位置:$pos";
}

처음부터 검색하는 것과 비교할 때, 관련이없는 영역 인 검색을 건너 뛰는 것이 더 효율적이고 자원 절약입니다.

4. 일반적인 오류

  1. 음의 오프셋 : 음수 값을 사용할 수 있지만 대부분의 시나리오에서 예기치 않은 동작으로 이어질 것입니다. 당신이 목적을 실제로 이해하지 않는 한, 이와 같이 사용하는 것이 좋습니다.

  2. $ 오프셋을 무시하면 중복 일치가 발생합니다 . 여러 차례 대상을 찾아야하는 경우 $ $ 오프셋을 설정하십시오. 그렇지 않으면 항상 첫 번째 발생 위치로 돌아갑니다.

5. 요약

Stripos () 함수의 $ 오프셋 매개 변수는 강력하지만 종종 간과되는 기능입니다. 합리적으로 $ 오프셋을 사용하면 코드가보다 효율적이고 유연해질 수 있습니다. 여러 번 나타나는 하위 문자열을 찾고 있거나 처리 된 컨텐츠를 건너 뛰든 $ 오프셋은 편리합니다.

다음에 검색 관련 논리를 작성하면 멈추고 생각할 수도 있습니다. $ 오프셋을 추가해야합니까?