현재 위치: > 최신 기사 목록> stripos를 사용한 퍼지 검색의 기본 논리

stripos를 사용한 퍼지 검색의 기본 논리

M66 2025-05-31

웹 응용 프로그램을 개발할 때는 종종 많은 양의 데이터를 검색해야합니다. 일반적인 정확한 일치의 경우 strpos 또는 기타 문자열 함수를 사용할 수 있습니다. 그러나 퍼지 검색을 수행해야 할 때 PHP는 매우 실용적인 기능인 Stripos를 제공합니다. 이 기능을 사용하면 문자열에서 하위 문자열의 위치를 ​​찾을 수 있으며 검색 할 때는 케이스에 민감합니다.

1. stripos 기능의 기본 원리

Stripos 함수는 String (Substring)이 다른 문자열에서 먼저 나타나는 위치를 찾는 데 사용됩니다. Strpos 기능과 달리 STRPO는 검색 할 때 케이스를 무시합니다. 이는 대상 문자열이 대문자인지 소문자인지 여부에 관계없이 Stripos가 일치를 올바르게 찾을 수 있음을 의미합니다.

함수 구문

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

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

  • 오프셋 (선택 사항) : 대상 문자열의 위치에서 검색을 시작합니다. 기본값은 0입니다 (처음부터 시작).

일치가 발견되면 Stripos는 일치하는 하위 문자의 시작 위치 (인덱스 위치)를 반환하고 찾을 수없는 경우 false를 반환합니다.

2. 퍼지 검색 응용 프로그램 예제

여러 사용자의 이메일 주소를 저장하는 데이터베이스가 있다고 가정합니다. 사용자가 검색 키워드를 입력하면 키워드와 관련된 모든 이메일 주소가 퍼지 매칭을 통해 찾을 수 있기를 바랍니다.

다음은 Stripos를 사용하여 퍼지 검색을 구현하는 방법을 보여주는 간단한 PHP 예입니다.

 <?php
// 사용자가 입력 한 키워드 검색
$searchKeyword = "example";

// 전자 메일 주소가 있다고 가정합니다
$emailList = [
    "user1@m66.net",
    "user2@m66.net",
    "contact@m66.net",
    "admin@example.com",
    "test@example.com"
];

// 일치하는 결과를 저장하십시오
$matchingEmails = [];

// 이메일 주소 배열을 통해 반복하십시오,퍼지 검색을 수행하십시오
foreach ($emailList as $email) {
    if (stripos($email, $searchKeyword) !== false) {
        $matchingEmails[] = $email;
    }
}

// 출력 일치 결과
echo "일치하는 이메일 주소:\n";
foreach ($matchingEmails as $email) {
    echo $email . "\n";
}
?>

코드 구문 분석 :

  1. 검색 키워드 $ SearchKeyword를 정의하고 이메일 주소 $ emaillist가 있다고 가정합니다.

  2. Foreach를 사용하여 각 이메일 주소를 반복하고 퍼지 매칭을 위해 Stripos 에 전화하십시오. 일치가 발견되면 이메일 주소가 $ matchingemails 어레이에 추가됩니다.

  3. 마지막으로, 우리는 일치하는 모든 이메일 주소를 인쇄합니다.

위의 예에서 Stripos는 사례를 무시하고 키워드가 포함 된 이메일 주소를 효과적으로 찾을 수 있습니다.

3. 응용 프로그램 시나리오

Stripos 기능은 많은 퍼지 검색 시나리오에 적합하며 일반적인 응용 프로그램에는 다음이 포함됩니다.

  • 검색 엔진 : 사용자가 입력 한 키워드가 포함 된 문서, 내용 또는 레코드를 찾으십시오.

  • 로그 분석 : 많은 로그 파일에서 특정 키워드 또는 오류 메시지를 찾으십시오.

  • 컨텐츠 필터링 : 불필요한 컨텐츠를 필터링하거나 특정 키워드를 기반으로 컨텐츠 검토를 수행합니다.

4. 주목할만한 것들

  1. 성능 문제 : Scripos 함수가 매우 편리하지만 데이터 볼륨이 매우 크면 기능을 자주 호출하면 성능에 영향을 줄 수 있습니다. 효율성을 향상시키기 위해 데이터베이스의 전체 텍스트 검색 기능 또는 캐싱 기술을 사용하는 것을 고려하십시오.

  2. 일치하는 방법 : stripos 는 사례에 민감하지만, 대소 문자에 민감 해야하는 경우 strpos 기능을 사용할 수 있습니다.

  3. 매치 위치 : Stripos는 경기의 시작 위치를 반환합니다. 보다 자세한 일치 정보를 얻어야하는 경우 다른 기능과 함께 사용할 수 있습니다.