PHP에서 전통적인 문자열 길이 함수는 종종 멀티 바이트 문자를 처리 할 때 정확하게 계산되지 않습니다. 예를 들어, 한자는 UTF-8 인코딩 하의 멀티 바이트이며, 정상 함수를 사용하여 계산하면 길이 오류가 발생합니다. 다행히도 PHP는 그러한 상황을 처리하기위한 특수 함수 MB_Strlen을 제공합니다.
MB_STRLEN을 사용하기 전에 PHP가 멀티 바이트 스트링 확장을 활성화했는지 확인해야합니다. PHP 구성 파일 php.ini를 열고 다음 코드 줄을 찾으십시오.
; Extension = mbstring
세미콜론이있는 경우 ";" 그 앞에서는 그것을 삭제하고 웹 서버 또는 PHP 서비스를 다시 시작하여 확장이 적용되도록하십시오.
<?php
$str = "안녕하세요,세계!";
$length = mb_strlen($str, "UTF-8");
echo "끈 $str 길이는입니다: $length";
?>
위 코드에서 변수 $ str는 중국어가 포함 된 문자열을 저장합니다. MB_STRLEN을 호출하고 인코딩을 UTF-8 로 지정하여 문자열 길이를 올바르게 계산하십시오. 실행 결과는 다음과 같습니다.
안녕하세요, 문자열! 길이는 : 6입니다
때로는 문자열이 비어 있는지 확인해야합니다. MB_STRLEN을 직접 사용한다고해서 공백 문자 만 포함 된 문자열을 제외하지 않을 수 있습니다. 이때 트림 기능을 사용하여 먼저 양쪽 끝에서 공백을 제거한 다음 길이를 판단 할 수 있습니다.
<?php
$str = " ";
$trimmedStr = trim($str);
if (mb_strlen($trimmedStr, "UTF-8") > 0) {
echo "끈不为空";
} else {
echo "끈为空";
}
?>
이런 식으로 문자열에 공백 만 있더라도 프로그램은 비어있는 문자열로 올바르게 판단합니다.
PHP의 MB_Strlen 함수를 사용하면 일반 문자열 함수의 문제를 피함으로써 다국어 환경에서 오류를 피하기 위해 다중 바이트 문자열의 길이를 정확하게 얻을 수 있습니다. 트림 함수와 결합하여 문자열이 비어 있는지 효과적으로 결정할 수 있습니다. 이러한 기술은 중국 및 기타 다중 바이트 캐릭터를 다룰 때 매우 실용적이며 PHP 개발자에게는 매우 중요합니다.