PHP의 IntlChar::getBlockCode() 함수는 주어진 값(val)이 속해 있는 유니코드 할당 블록(Unicode allocation block)을 조회하는 함수입니다. 유니코드에서는 전 세계의 문자와 기호를 성격에 따라 여러 블록으로 나누어 관리하는데, 이 함수를 활용하면 특정 문자가 어느 블록에 포함되는지 간단히 확인할 수 있습니다.
구문
IntlChar::getBlockCode(mixed $val): int
매개변수
val − 검사할 문자를 나타내는 정수(코드포인트) 또는 UTF-8로 인코딩된 단일 문자열입니다.
반환값
이 함수는 입력값 val에 해당하는 블록 코드 상수를 정수 형태로 반환합니다. 대표적인 블록 코드 상수는 다음과 같습니다.
IntlChar::BLOCK_CODE_BASIC_LATIN − 영문 알파벳 등이 포함된 기본 라틴 문자 블록
IntlChar::BLOCK_CODE_GREEK − 그리스 문자 블록
IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS − 눈사람(☃) 등 다양한 기호가 모여 있는 기타 기호 블록
예제
다음 예제는 서로 다른 문자들이 각각 어떤 유니코드 블록에 속하는지 확인하는 코드입니다.
<?php
// 'A'는 기본 라틴(BASIC_LATIN) 블록에 속합니다.
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
echo "<br>";
// 'α'(U+03B1)는 그리스(GREEK) 블록에 속합니다.
var_dump(IntlChar::getBlockCode("α") === IntlChar::BLOCK_CODE_GREEK);
echo "<br>";
// '☃'(U+2603)는 기타 기호(MISCELLANEOUS_SYMBOLS) 블록에 속합니다.
var_dump(IntlChar::getBlockCode("☃") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>
출력 결과
위 예제를 실행하면 다음과 같은 결과가 출력됩니다.
bool(true) bool(true) bool(true)
세 문자 모두 자신이 속한 블록 코드와 일치하기 때문에 비교 결과가 모두 true로 나옵니다. 이처럼 IntlChar::getBlockCode() 함수를 사용하면 문자를 블록 단위로 판별할 수 있어, 다국어 처리나 문자 유효성 검사 등에 유용하게 활용할 수 있습니다.