중국어를 제거하는 방법을 설명하기 전에 먼저 중국 문자열의 정의를 이해하십시오. 중국 문자열은 한자로 구성된 문자열입니다. 각 중국어는 일반적으로 두 바이트를 차지하며 유니 코드로 인코딩되므로 문자열을 다룰 때 문자 인코딩 문제에 특별한주의가 필요합니다.
정규 표현식은 문자열에서 한자를 일치시키고 삭제할 수 있습니다. 다음은 정규 표현식을 사용하여 중국어를 제거하는 방법을 보여주는 샘플 코드입니다.
$str = "Hello, 안녕하세요!";
$str = preg_replace('/[\x{4e00}-\x{9fa5}]/u', '', $str);
echo $str; // 산출: Hello, !
분석 : 여기서 정규 표현은 모든 한자와 일치하며 UTF-8 인코딩 지원은 U 매개 변수를 사용하여 활성화됩니다. preg_replace 함수는 일치하는 중국어를 빈 문자열로 교체하여 제거 기능을 달성 할 책임이 있습니다.
MB_SUBSTR는 다중 바이트 스트링 인터셉트 함수입니다. 중국어를 직접 제거 할 수는 없지만 특정 차단 기술을 통해 제거 효과를 달성 할 수 있습니다. 예는 다음과 같습니다.
$str = "Hello, 안녕하세요!";
$str = mb_substr($str, 0, 0, 'UTF-8') . mb_substr($str, 0, 0, 'UTF-8');
echo $str; // 산출: Hello, !
분석 :이 메소드는 문자열의 길이를 0으로 가로 채서 빈 문자열을 반환합니다. 예제의 코드 효과는 제한적이지만 실제 개발에는 정규 표현 방법이 더 권장됩니다.
preg_replace_callback 함수를 사용하면 매칭 문자열의 사용자 정의 처리가 가능하며 중국어를 제거하는 데 사용할 수 있습니다. 예제는 다음과 같습니다.
$str = "Hello, 안녕하세요!";
$str = preg_replace_callback('/[\x{4e00}-\x{9fa5}]/u', function($matches) {
return "";
}, $str);
echo $str; // 산출: Hello, !
분석 :이 기능은 콜백 메커니즘을 사용하여 일치하는 중국어를 빈 문자열로 대체하여 중국어를 제거하는 효과를 달성합니다.
이 기사는 PHP의 문자열에서 한자를 제거하는 세 가지 방법, 즉 일반 표현식, MB_SUBSTR과의 가로 채기 및 preg_replace_callback 콜백 처리를 기반으로 preg_replace를 제거하는 세 가지 방법을 소개합니다. 실제 응용 분야에서 정규 표현 방법은 더 간결하고 효율적이므로 먼저 사용하는 것이 좋습니다. 작동 할 때는 UTF-8 인코딩을 사용하여 차량 코드를 피하는 데 사용되도록 문자열의 인코딩 형식에주의를 기울여야합니다.