PHP에서 멀티 바이트 문자열 (예 : 중국어, 일본어, 한국 등)을 다룰 때 일반적인 문자열 기능에는 잘린 코드가 발생할 수 있습니다. 이 문제를 해결하기 위해 PHP는 MB_Strcut 함수를 제공하며,이 기능은 멀티 바이트 스트링을 가로 채기 위해 특별히 사용됩니다. 이 기사는 MB_Strcut 의 기본 사용법을 자세히 소개하고 예제를 사용하여 다중 바이트 문자열의 가로 채기 기술을 쉽게 마스터하는 데 도움이됩니다.
MB_Strcut 함수는 PHP Multi-Byte String 함수 라이브러리의 구성원입니다. 주요 기능은 문자열의 지정된 바이트 위치에서 지정된 길이의 바이트 수를 가로 채는 것입니다. 차단은 바이트를 기반으로하지만 다중 바이트 문자가 절반으로 절단되지 않도록하여 차량 코드를 피할 수 있습니다.
함수 서명은 다음과 같습니다.
mb_strcut(string $str, int $start, ?int $length = null, ?string $encoding = null): string
$ str : 문자열이 가로 채기.
$ 시작 : 시작 위치, 단위는 바이트입니다.
$ 길이 : 가로 채기 길이, 단위는 바이트입니다. 생략되면 문자열의 끝이 가로 채 웁니다.
$ 인코딩 : 문자열의 인코딩, 기본값은 내부 인코딩 (일반적으로 UTF-8)입니다.
MB_Strcut 와 MB_Substr 는 다중 바이트 문자열을 가로 채울 수 있지만 논리는 다릅니다.
mb_substr는 문자 수에 의해 문자열을 가로 채 웁니다 (예 : 세 번째 문자로 시작하는 5자를 가로 채립니다).
MB_Strcut는 바이트 수에 의해 문자열을 잘라냅니다 (갈비 된 코드를 일으키는 멀티 바이트 문자를 잘라내는 것을 피하십시오).
예를 들어, 중국어에 중국어가 포함 된 경우, 중국어가 UTF-8 인코딩에서 3 바이트를 차지하고 MB_Strcut 에 의해 지정된 바이트 범위는 더 세분화되며 가로 채기 동안 문자가 분해되지 않습니다.
다음은 MB_Strcut 로 중국 문자열을 가로 채는 방법을 보여주는 간단한 예입니다.
<?php
$text = "안녕하세요,세계!"; // 이것은 중국 문장입니다,멀티 바이트 문자가 포함되어 있습니다
// 바이트로 가로 채기,시작 위치0,길이6바이트
$result = mb_strcut($text, 0, 6, 'UTF-8');
echo $result; // 산출 "안녕하세요"
?>
설명하다:
중국인은 각각 3 바이트를 차지하고 차단 된 6 바이트는 정확히 2 개의 완전한 한자입니다.
Substr 함수를 사용하여 6 바이트를 가로 채면 문자가 잘릴 수 있습니다.
방해받지 않는 코드를 피하십시오 : 다중 바이트 문자가 포함 된 문자열을 처리 할 때 먼저 mb_strcut를 사용하여 가로 채는 결과가 문자 구조를 파괴하지 않도록하십시오.
인코딩 지정 : 다른 기본 인코딩으로 인한 문제를 방지하기 위해 항상 인코딩 매개 변수 (일반적으로 UTF-8 )를 지정하는 것이 좋습니다.
Strlen과 함께 사용 : 문자열의 전반전을 가로 채려면 먼저 MB_Strlen을 사용하여 문자 길이를 얻은 다음 MB_Strcut을 사용하여 해당 바이트 길이를 결정할 수 있습니다.
멀티 바이트 문자열에서 URL을 자르고 스플릿하고 싶다고 가정하면 다음과 같이 쓸 수 있습니다.
<?php
$text = "공식 웹 사이트를 방문하십시오:";
$url = "https://gitbox.net/path/to/resource";
$result = mb_strcut($text, 0, 12, 'UTF-8'); // 인터셉트6个中文字符的바이트길이
echo $result . $url;
?>
산출:
공식 웹 사이트를 방문하십시오:https://gitbox.net/path/to/resource
MB_STRCUT는 캐릭터를 잘라 내지 않고 바이트에 의해 가로 채는 다중 바이트 스트링 자르기를 처리하는 데 이상적인 기능입니다.
UTF-8 코딩 된 중국어, 일본어 및 기타 문자열을 처리하는 데 적합합니다.
호환성을 보장하기 위해 사용할 때 인코딩 매개 변수를 명확하게 지정하는 것이 좋습니다.
실제 애플리케이션과 결합하여 문자열 및 스플 라이스 URL 또는 기타 컨텐츠를 쉽게 가로 채겠습니다.
MB_Strcut를 마스터하면 다중 바이트 문자열을 더 잘 처리하여 PHP 프로그램의 견고성 및 사용자 경험을 향상시킬 수 있습니다.