현재 위치: > 최신 기사 목록> MB_STRCUT를 사용하여 멀티 바이트 문자열을 가로 채는 방법

MB_STRCUT를 사용하여 멀티 바이트 문자열을 가로 채는 방법

gitbox 2025-05-31

MB_Strcut는 PHP에서 멀티 바이트 캐릭터 (예 : 중국어, 일본어, 한국 등)를 다룰 때 매우 실용적인 기능입니다. Substr 과 달리 다중 바이트 문자가 잘리지 않도록하여 문제가 발생하지 않도록합니다. 이 기사는 MB_Strcut를 올바르게 사용하여 다중 바이트 문자열을 가로 채서 실제 사례와 함께 보여주는 방법을 자세히 설명합니다.

1. MB_STRCUT와 MB_SUBSTR의 차이

시작하기 전에 MB_StrcutMB_SUBSTR 의 차이점을 간략하게 이해해 봅시다.

  • MB_SUBSTR은 문자 수에 의해 차단됩니다.

  • MB_STRCUT 는 바이트 길이에 의해 가로 채지 만 문자가 잘리지 않도록합니다 (즉, 중국어의 일부만 가로 채지 않습니다).

  • 둘 다 지정된 문자 인코딩을 지원합니다.

즉, MB_Strcut은 데이터베이스 필드 길이 제한, 요약 생성 등과 같은 바이트 레벨에서 텍스트를 처리하는 데 더 적합하다는 것을 의미합니다.

2. mb_strcut 함수의 구문

 string mb_strcut(string $string, int $start, int $length = null, string $encoding = null)
  • $ String : 처리 할 문자열;

  • $ 시작 : 시작 위치 (바이트로 계산);

  • $ 길이 : 가로 채울 바이트 수;

  • $ 인코딩 : 문자 인코딩 (예 : UTF-8, GBK 등), 선택 사항.

3. 예제를 사용하십시오

예 1 : 기본 사용

 <?php
$str = "안녕하세요,세계!";
$result = mb_strcut($str, 0, 6, "UTF-8");
echo $result; // 산출:안녕하세요
?>

설명 : 각 중국어는 UTF-8 인코딩에서 3 바이트를 차지하므로 6 바이트는 정확히 2 개의 한자입니다.

예제 2 : 차량 코드 방지

Substr을 사용하여 중국어를 가로 채면 차량 코드가 발생하기 쉽습니다.

 <?php
$str = "안녕하세요,세계!";
echo substr($str, 0, 5); // 可能산출乱码
?>

이 문제를 피하기 위해 MB_STRCUT 로 변경하십시오.

 <?php
$str = "안녕하세요,세계!";
echo mb_strcut($str, 0, 5, "UTF-8"); // 산출:너
?>

예 3 : 데이터베이스 또는 페이지와 함께 표시됩니다

기사 요약을 가로 채어야 할 때 다음 방법을 사용할 수 있습니다.

 <?php
$content = "공식 웹 사이트에 오신 것을 환영합니다:https://gitbox.net/blog/php-mb_strcut-use";
$summary = mb_strcut($content, 0, 60, "UTF-8");
echo $summary . "...";
?>

이는 웹 페이지에 고정 길이 요약을 안전하게 표시합니다.

4. 적절한 차단 길이를 결정하는 방법은 무엇입니까?

다중 바이트 문자는 다른 인코딩에서 다른 바이트 길이를 차지하기 때문에 동적 처리에 MB_STRLENMB_STRCUT를 사용하는 것이 좋습니다.

 <?php
function safe_cut($str, $maxBytes, $encoding = "UTF-8") {
    return mb_strcut($str, 0, $maxBytes, $encoding);
}
?>

이렇게하면 다음과 같은 바이트 제한을 유연하게 설정할 수 있습니다.

 echo safe_cut("이것은 a입니다PHP문자열 처리의 예", 9); // 산출:이것은

5. 주목할만한 것들

  • MB_STRCUT 는 바이트 레벨 작업이므로 데이터를 저장하거나 전송할 때 정확한 길이 제어에 특히 적합합니다.

  • HTML 인코딩 또는 필터 문자열이 아니며 HTMLSpecialchars 와 같은 함수와 함께 사용해야합니다.

  • 서버에 MBString 확장 기능이 활성화되어 있고 phpinfo () 를 통해 볼 수 있는지 확인하십시오.

6. 결론

MB_STRCUT는 다중 바이트 문자열을 처리하는 데있어 PHP의 중요한 도구입니다. 특히 바이트 길이의 정확한 제어가 필요한 시나리오에 대한 경우. 시작 위치와 길이를 합리적으로 설정하고 코딩 설정을 결합함으로써 코드 문제를 쉽게 피하고 프로그램의 견고성을 향상시킬 수 있습니다. 개발 중에 MB_Strcut 를 최대한 활용하여 다국어 문자열을 다룰 때 더 편안하게 할 수 있습니다.