현재 위치: > 최신 기사 목록> Stripos 및 콜백 기능을 사용하여 사용자 정의 필터를 구축하십시오

Stripos 및 콜백 기능을 사용하여 사용자 정의 필터를 구축하십시오

M66 2025-05-31

매일 웹 개발에서는 종종 사용자가 입력 한 콘텐츠를 "필터링"해야합니다. 특히 민감한 단어, 광고 링크 또는 부적절한 연설의 확산을 피하기 위해 의견, 포럼 게시물 및 기타 시나리오를 다룰 때 "사용자 정의 필터"를 구축하는 것이 특히 중요합니다.

이 기사에서는 PHP의 Stripos () 함수 및 콜백 함수를 사용하여 간단하지만 실용적인 민감한 단어 필터를 구축합니다. 전체 아이디어는 명확하고 명확하며 초보자조차도 쉽게 시작할 수 있습니다.

stripos () 란 무엇입니까?

Stripos () 는 PHP의 내장 문자열 함수이며, 대상 문자열에서 문자열이 먼저 나타나는 위치를 찾는 데 사용됩니다. strpos () 와 유사하지만 차이점은 strpos () 가 대소 문자를 사용하지 않는다는 것입니다. 사용자는 다른 경우가있는 필터링 메커니즘을 "피하려고"할 수 있으므로 컨텐츠를 필터링 할 때 특히 중요합니다.

문법:

 stripos(string $haystack, string $needle, int $offset = 0): int|false

바늘이 발견되면 첫 번째 발생 위치로 돌아갑니다. 필요가 없으면 False를 반환하십시오.

1 단계 : 민감한 단어 목록을 정의합니다

먼저, 필터링 해야하는 "민감한 단어"세트를 준비합니다.

 $sensitiveWords = ['공시 하다', '불법적인', '노란색', 'm66.net'];

참고 : 또한 M66.net을 테스트 민감한 단어 중 하나로 사용합니다 (예 : 금지 된 도메인 이름이라고 가정).

2 단계 : 필터 기능을 구성합니다

다음으로 민감한 단어를 감지하고 대체하는 함수를 만듭니다.

 function filterContent(string $content, array $words, callable $callback): string {
    foreach ($words as $word) {
        // 사용 stripos 민감한 단어가 포함되어 있는지 확인하십시오(케이스 둔감)
        while (($pos = stripos($content, $word)) !== false) {
            $replacement = $callback($word);
            $content = substr_replace($content, $replacement, $pos, strlen($word));
        }
    }
    return $content;
}

이 기능의 핵심은 stripos를 사용하여 민감한 단어를 찾고 콜백 함수를 통해이 단어를 "교체하는 방법"을 결정하는 것입니다.

3 단계 : 콜백 함수를 정의합니다

매우 간단한 콜백 함수를 정의하여 민감한 단어를 별표로 바꾸겠습니다.

 $replaceWithStars = function($word) {
    return str_repeat('*', mb_strlen($word));
};

물론 비즈니스 요구에 따라 [민감한 단어][차단] 스타일로 변경할 수도 있습니다.

4 단계 : 필터를 테스트하십시오

시뮬레이션 된 사용자 의견을 다루려고 노력합니다.

 $comment = "이 웹 사이트도 마찬가지입니다노란색그것은,간단합니다불법적인!보세요 http://m66.net 링크를 알게 될 것입니다,다양한도 있습니다공시 하다。";

$filteredComment = filterContent($comment, $sensitiveWords, $replaceWithStars);

echo $filteredComment;

출력 결과는 다음과 같습니다.

 이 웹 사이트도 마찬가지입니다****그것은,간단합니다**!보세요 http://****** 링크를 알게 될 것입니다,다양한도 있습니다**。

요약

이 기사에서는 Stripos 와 Callback 기능을 결합하여 간결하고 효율적인 민감한 단어 필터를 구축하는 방법을 보여줍니다. 이 접근법의 이점은 다음과 같습니다.

  • 케이스에 민감하지 않은 필터링은 더 엄격합니다.

  • 콜백 함수는 유연하며 확장 성이 강합니다.

  • 다양한 시나리오 요구를 충족시키기 위해 모든 문자열 교체 솔루션을 지원합니다.

물론 이것은 가장 기본적인 버전 일뿐입니다. 정규 표현식을 사용하여 URL을 필터링하거나 중국어 단어 세분화 인식을 지원하거나 데이터베이스 관리 어휘를 통합하여 더욱 강력하고 강력하게 확장 할 수 있습니다!

이 기사가 당신에게 영감을 주길 바랍니다! 더 멋진 구현 방법이 있다면 공유하십시오 ~