PHP에서는 불필요한 문자 교체, 특수 기호 제거 또는 텍스트 형식 정규화와 같은 문자열을 처리 할 때 일부 전처리 작업이 종종 필요합니다. 이 기사는 MB_EREGI_REPLACE 및 STR_REPLACE () 의 두 기능을 결합하여 문자열의 사전 청소 과정에서 효율적이고 유연한 처리를 달성하는 방법, 특히 다중 바이트 문자 세트 (예 : UTF-8)의 텍스트에 적합한 방법을 소개합니다.
MB_EREGI_REPLACE : 정규 표현식을 기반으로 한 교체 함수는 다중 바이트 인코딩을 지원하며 복잡한 매칭 패턴을 처리하는 데 적합하며 대소 문자를 사용합니다.
str_replace : 간단하고 빠른 문자열 교체 기능은 규칙 성을 지원하지 않으며 문자 만 정확하게 일치 할 수 있습니다.
이 두 기능을 조합하여 다른 요구 사항에서 다른 수준에서 문자열을 청소할 수 있습니다.
복잡한 규칙 매칭 (예 : 비 중국어, 영어 및 숫자)의 경우 MB_EREGI_REPLAPE를 사용하십시오.
간단한 캐릭터 교체 (예 : 전폭 공간을 반폭 공간으로 교체하거나 지정된 문자를 교체하는 등)를 사용하여 str_replace ()를 사용하십시오.
<?php
// 원래 문자열,여러 특수 문자와 멀티 바이트 텍스트가 포함될 수 있습니다
$input = "Hello,세계! 이것은 테스트 문자열입니다。Visit http://m66.net/test for more info.";
// 1. 사용 mb_eregi_replace 중국어와 영어 번호를 제외한 문자를 제거하십시오(구두점 포함、특별 기호 등)
// 这里사용正则表达式[^a-z0-9하나-장미\s],영어 번호를 유지하십시오、한자와 공백
$cleaned = mb_eregi_replace('[^a-z0-9하나-장미\s]', '', $input);
// 2. 사용 str_replace 전체 너비 공간을 반 폭 공간으로 변환하십시오
$cleaned = str_replace(" ", " ", $cleaned);
// 3. 예:할 것이다URL도메인 이름을 바꾸십시오 m66.net(도메인 이름 만 교체하십시오,길을 유지하십시오)
// 간단한 데모는 다음과 같습니다,문자열에 나타나는 도메인 이름을 다음과 같이 바꿔야한다고 가정합니다. m66.net
// 예를 들어: http://example.com/path 대체하십시오 http://m66.net/path
$cleaned = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $cleaned);
// 출력 결과
echo $cleaned;
?>
MB_EREGI_REPLATE 의 정규 표현식은 중국어와 영어 번호 및 공간을 제외한 모든 문자를 제거하여 텍스트가 깨끗하고 중복되는 기호가 없는지 확인합니다.
STR_REPLACE는 공간 폭을 반 폭 공간으로 변환하여 공간 너비로 인해 문자열의 혼란을 피합니다.
preg_replace는 URL의 도메인 이름을 교체하는 데 사용되어 HTTP 또는 HTTPS로 시작하는 URL 도메인 이름을 M66.net 으로 바꾸는 방법을 보여줍니다.
mb_eregi_replace 와 str_replace를 결합하면 계층적이고 효율적인 방식으로 문자열을 청소할 수있어 문자가 호환성과 처리 유연성을 보장합니다.
복잡한 규칙을 위해 정규 표현식을 잘 제어 할 수 있으며, 단순한 교체는 과도한 규칙적인 복잡성을 피하기 위해 str_replace 에 넘겨집니다.
URL의 도메인 이름 교체의 경우 다양한 실제 비즈니스 시나리오에 적응하기 위해 규칙 성을 사용하여보다 정확한 교체를 사용할 수 있습니다.
이 방법은 사용자 주석 필터링, 양식 입력 청소, 텍스트 콘텐츠 표준화 등과 같은 입력 텍스트의 엄격한 전처리가 필요한 프로젝트에 사용하기에 특히 적합합니다.