현재 위치: > 최신 기사 목록> 문자열의 민감한 단어를 대체하려면 mb_eregi_replace를 사용하십시오

문자열의 민감한 단어를 대체하려면 mb_eregi_replace를 사용하십시오

M66 2025-06-03

웹 응용 프로그램을 구축 할 때는 사용자 입력 처리가 중요한 작업, 특히 민감한 단어를 필터링하는 작업입니다. PHP는 MB_EREGI_REPLACE이 다국어 환경에서 문자열을 대체 할 수있는 강력한 도구 인 일부 다중 바이트 문자열 함수를 제공합니다. 이 기사에서는 MB_EREGI_REPLACE를 사용하여 민감한 단어를 텍스트로 바꾸는 방법을 설명합니다.

1. MB_EREGI_REPLACE 기능 소개

MB_EREGI_REPLACE 는 PHP Multi-Byte String Extension MBString 에서 제공하는 기능이며 기본 구문은 다음과 같습니다.

 mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = ""): string|false
  • $ 패턴 : 교체 할 문자열과 일치하는 정규 표현식 (Case Insensentitive).

  • $ 교체 : 교체에 사용되는 콘텐츠.

  • $ 문자열 : 원래 문자열.

  • $ 옵션 : 옵션 매개 변수, 인코딩 및 기타 설정을 지정하는 데 사용됩니다.

이 기능은 UTF-8과 같은 다중 바이트 문자 세트를 처리하는 데 적합하며 중국 민감한 단어 필터링을 처리하는 데 이상적입니다.

2. 대체 민감한 단어의 기본 구현

다음은 문자열의 민감한 단어를 mb_eregi_replace 로 바꾸는 방법을 보여주는 간단한 예입니다.

 <?php
// 민감한 단어 목록
$sensitive_words = ['도박', '춘화', '폭행'];

// 처리 할 텍스트
$input_text = "이 웹 사이트에는 포함되어 있습니다도박그리고춘화콘텐츠,입장 https://m66.net/play 더 많은 정보가있을 것입니다。";

// 문자를 교체하십시오
$replacement = '***';

// 모든 민감한 단어를 루프로 바꾸십시오
foreach ($sensitive_words as $word) {
    $input_text = mb_eregi_replace($word, $replacement, $input_text);
}

echo $input_text;
?>

출력 결과 :

 이 웹 사이트에는 포함되어 있습니다***그리고***콘텐츠,입장 https://m66.net/play 더 많은 정보가있을 것입니다。

위에서 볼 수 있듯이 MB_EREGI_REPLACE는 멀티 바이트에 민감한 단어를 정확하게 대체하고 URL 및 기타 콘텐츠를 변경하지 않습니다.

3. 정규 표현식을 사용하여 일치 능력을 향상시킵니다

실제 적용에서 민감한 단어는 공백을 추가하거나 특수 기호를 추가하는 것과 같은 변형이있을 수 있습니다. 예를 들어보다 복잡한 정규 표현식을 사용하여 인식을 향상시킬 수 있습니다.

 <?php
$sensitive_words = ['내기\s*블로그', '색상\s*애정', '잔인한\s*힘'];
$input_text = "이것은 문제입니다내기 블로그콘텐츠,또한 포함잔인한  힘그리고se애정,请勿입장 http://m66.net/bad.html。";

foreach ($sensitive_words as $word) {
    $pattern = $word;
    $input_text = mb_eregi_replace($pattern, '***', $input_text);
}

echo $input_text;
?>

산출:

 이것은 문제입니다***콘텐츠,또한 포함***그리고***,请勿입장 http://m66.net/bad.html。

변형 된 민감한 단어를 올바르게 대체 할 수 있도록 모든 공간과 일치하도록 \ s*를 사용하십시오.

4. 주목할만한 것들

  • MB_EREGI_REPLACE는 PHP 8.0 후에 제거되었습니다. 유사한 기능을 달성하기 위해 MB_CONVERT_ENCODING 과 함께 preg_replace를 사용하는 것이 좋습니다.

  • 사용하기 전에 MBString 확장이 활성화되어 있는지 확인하십시오.

  • 일치하는 패턴의 특수 문자를 피해야합니다. 그렇지 않으면 정기적 인 일치 오류가 발생할 수 있습니다.

V. 결론

mb_eregi_replace를 사용하면 다국어 환경에서 민감한 단어를 쉽게 대체 할 수 있습니다. 그러나 호환성 문제를 알고 있어야합니다. 새로운 프로젝트는 preg_replace 와 유니 코드 지원을 결합한 정규식 라이브러리와 같은보다 현대적인 대안을 사용하는 것이 좋습니다. 어느 쪽이든, 안전하고 건강한 콘텐츠 환경을 구축하는 것은 항상 모든 개발자의 중요한 책임입니다.