PHP IntlChar::charDirection() 함수란?
PHP의 IntlChar::charDirection() 함수는 입력된 문자가 속한 유니코드 양방향(bidirectional) 카테고리 값을 반환합니다. 이 함수를 활용하면 해당 문자가 왼쪽에서 오른쪽으로 표기되는지(LTR), 오른쪽에서 왼쪽으로 표기되는지(RTL), 아니면 숫자나 중립 문자에 해당하는지 등을 손쉽게 판별할 수 있습니다. 다국어 텍스트를 처리하거나 문자의 표기 방향을 검증해야 할 때 특히 유용합니다.
문법
int IntlChar::charDirection(val)
매개변수
val − 방향성을 확인할 대상 값입니다. 정수(유니코드 코드 포인트) 또는 UTF-8로 인코딩된 단일 문자를 전달할 수 있습니다.
반환값
IntlChar::charDirection() 함수는 아래와 같은 양방향 카테고리 상수 중 하나를 반환합니다.
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT − 왼쪽에서 오른쪽으로 표기되는 문자 (라틴 문자 등)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT − 오른쪽에서 왼쪽으로 표기되는 문자 (히브리어 등)
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER − 유럽식 숫자 (0~9)
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR − 유럽 숫자 구분 기호
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR − 유럽 숫자 종결 기호
IntlChar::CHAR_DIRECTION_ARABIC_NUMBER − 아랍어 숫자
IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR − 공통 숫자 구분 기호 (쉼표, 마침표 등)
IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR − 블록 구분 기호
IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR − 세그먼트 구분 기호
IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL − 공백 및 중립 문자
IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL − 기타 중립 문자
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING − 왼쪽→오른쪽 임베딩 제어 문자
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE − 왼쪽→오른쪽 재정의 제어 문자
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC − 아랍어용 오른쪽→왼쪽 문자
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING − 오른쪽→왼쪽 임베딩 제어 문자
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE − 오른쪽→왼쪽 재정의 제어 문자
IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT − 방향성 형식 종료(PDF) 제어 문자
IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK − 비간격 결합 기호
IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL − 경계 중립 문자
IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE − 첫 번째 강력한 격리(isolate)
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE − 왼쪽→오른쪽 격리 제어 문자
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE − 오른쪽→왼쪽 격리 제어 문자
IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE − 격리 종료(PDI) 제어 문자
IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT − 총 방향성 카테고리 개수
예제
다음은 IntlChar::charDirection() 함수의 실제 사용 예제입니다.
<?php
var_dump(IntlChar::charDirection("-"));
echo "<br>";
var_dump(IntlChar::charDirection("*"));
echo "<br>";
var_dump(IntlChar::charDirection("kjh"));
echo "<br>";
var_dump(IntlChar::charDirection("H"));
echo "<br>";
?>
실행 결과
위 예제를 실행하면 다음과 같은 결과가 출력됩니다.
int(3)
int(10)
NULL
int(0)
결과 해석
"-" → int(3): 유럽 숫자 구분 기호(EUROPEAN_NUMBER_SEPARATOR)에 해당합니다.
"*" → int(10): 기타 중립 문자(OTHER_NEUTRAL)로 분류됩니다.
"kjh" → NULL: 두 글자 이상의 문자열은 처리할 수 없습니다. 반드시 단일 문자를 전달해야 합니다.
"H" → int(0): 왼쪽에서 오른쪽으로 표기되는 문자(LEFT_TO_RIGHT)입니다.
참고로 IntlChar 클래스를 사용하려면 PHP 환경에 intl 확장 모듈이 활성화되어 있어야 합니다.