현재 위치: > 최신 기사 목록> PHP에 의해 중국 문자열을 가로 채기위한 올바른 방법과 기술에 대한 자세한 설명

PHP에 의해 중국 문자열을 가로 채기위한 올바른 방법과 기술에 대한 자세한 설명

gitbox 2025-07-28

PHP에서 중국 문자열을 가로 채기위한 일반적인 방법

인기있는 서버 측 언어로서 PHP는 종종 문자열을 가로 채어야합니다. 한자는 여러 바이트를 점유하기 때문에 일반 문자열 인터셉터 기능은 중국어를 정확하게 처리 할 수 없습니다. 이 기사는 중국 문자열을 가로 채는 몇 가지 실용적인 방법을 공유 하여이 문제를 쉽게 해결할 수 있도록 도와줍니다.

MB_SUBSTR () 함수를 사용하여 중국 문자열을 가로 채립니다

PHP의 내장 MB_Substr () 함수는 다중 바이트 문자를 위해 설계되었으며 중국 문자열을 정확하게 차단할 수 있습니다. 간단한 바이트 수가 아닌 문자 수에 따라 가로칩니다.

기능 사용 예 :

 <span class="fun">mb_substr (String $ str, int $ start, int $ length, String $ charset = &#39;utf-8&#39;) : String</span>

매개 변수 설명 :

  • $ str : 문자열이 가로 채기.
  • $ start : 캐릭터 색인을 기반으로 시작 위치는 시작점입니다.
  • $ 길이 : 길이를 가로 채 웁니다.
  • $ charset : 문자 인코딩, 기본값으로 UTF-8.

샘플 코드 :

 $str = "PHP중국어 문자열을 가로 채세요";
$substr = mb_substr($str, 0, 6);
echo $substr;  // 산출:"PHP가로 채기"

정기적 인 표현을 통해 한자를 가로 채립니다

내장 기능 외에도 정규 표현식을 사용하여 preg_match ()를 결합하여 중국어를 가로 채는 것을 달성 할 수 있습니다. 정규 표현식은 특정 범위에서 유니 코드 중국어와 일치 할 수 있습니다.

샘플 코드 :

 $str = "PHP중국어 문자열을 가로 채세요";
preg_match('/^([\x{4e00}-\x{9fa5}]+)/u', $str, $matches);
echo $matches[1];  // 산출:"PHP"

사용자 정의 기능은 중국 문자열 차단을 구현합니다

보다 유연한 차단 로직이 필요한 경우 함수를 사용자 정의하고 mb_strlen ()mb_substr ()를 결합하여 엘립스 시스와의 차단 효과를 달성 할 수 있습니다.

 function substr_cn($str, $length) {
    $len = mb_strlen($str, 'UTF-8');
    if ($len > $length) {
        $str = mb_substr($str, 0, $length, 'UTF-8') . '...';
    }
    return $str;
}

$str = "PHP중국어 문자열을 가로 채세요";
$substr = substr_cn($str, 6);
echo $substr;  // 산출:"PHP가로 채기..."

주목해야 할 것

위의 방법을 사용하는 경우 다음 사항에주의를 기울여야합니다.

  • 문자 인코딩이 올바른지 확인하십시오. 기본 인코딩은 mb_internal_encoding ( 'utf-8')을 통해 설정할 수 있습니다. 일관되지 않은 인코딩으로 인한 가로 채기 오류를 피합니다.
  • 한자의 멀티 바이트 기능은 strlen () 과 같은 단일 바이트 기능을 피합니다. 문자열의 길이를 계산하기 위해 mb_strlen ()을 사용하는 것이 좋습니다.
  • 가로 채울 때 시작 위치와 길이가 바이트가 아닌 문자를 기반으로하여 문자를 자르지 않고 차량 코드를 유발하지 않도록하십시오.

요약

중국 문자열을 가로 채는 것은 PHP 개발에서 일반적이고 중요한 요구 사항입니다. 내장 된 MB_SUBSTR () 함수, 정규 표현식 일치 및 사용자 정의 기능을 통해 중국 문자열의 차단은 유연하고 효율적으로 될 수 있습니다. 문자 인코딩 및 길이의 올바른 처리는 정확한 차단 결과를 보장하는 열쇠입니다. 이 기사의 방법이 프로젝트 개발에 대한 실질적인 참조를 제공 할 수 있기를 바랍니다.