PHP의 nl_langinfo() 함수는 현재 설정된 언어 및 로케일(locale)에 관한 다양한 정보를 담고 있으며, 필요한 특정 항목의 정보를 조회할 때 사용합니다.
참고 − 이 함수는 Windows 환경에서는 작동하지 않습니다. Linux, Unix 계열 환경에서만 사용할 수 있습니다.
문법(Syntax)
nl_langinfo(ele)
매개변수(Parameters)
ele − 반환할 요소를 지정합니다. 아래 나열된 요소 중 하나를 사용할 수 있습니다.
시간 및 달력(Time and Calendar)
ABDAY_(1-7) − 해당 번호의 요일 약어 이름
DAY_(1-7) − 해당 번호의 요일 전체 이름 (DAY_1 = 일요일)
ABMON_(1-12) − 해당 번호의 월 약어 이름
MON_(1-12) − 해당 번호의 월 전체 이름
AM_STR − 오전(Ante meridiem)을 나타내는 문자열
PM_STR − 오후(Post meridiem)를 나타내는 문자열
D_T_FMT − strftime()에서 날짜와 시간을 표현할 때 사용할 수 있는 형식 문자열
D_FMT − strftime()에서 날짜를 표현할 때 사용할 수 있는 형식 문자열
T_FMT − strftime()에서 시간을 표현할 때 사용할 수 있는 형식 문자열
T_FMT_AMPM − strftime()에서 오전/오후가 포함된 12시간 형식으로 시간을 표현할 때 사용할 수 있는 형식 문자열
ERA − 대체 연호(era)
ERA_YEAR − 대체 연호 형식의 연도
ERA_D_T_FMT − 대체 연호 형식의 날짜와 시간 (strftime()에서 사용 가능)
ERA_D_FMT − 대체 연호 형식의 날짜 (strftime()에서 사용 가능)
ERA_T_FMT − 대체 연호 형식의 시간 (strftime()에서 사용 가능)
통화 카테고리(Monetary Category)
INT_CURR_SYMBOL − 국제 통화 기호 (예: USD)
CURRENCY_SYMBOL − 통화 기호 (예: $)
CRNCYSTR − CURRENCY_SYMBOL과 동일
MON_DECIMAL_POINT − 금액 표기 시 사용되는 소수점 문자
MON_THOUSANDS_SEP − 금액 표기 시 사용되는 천 단위 구분자
POSITIVE_SIGN − 양수 값을 나타내는 기호 문자
NEGATIVE_SIGN − 음수 값을 나타내는 기호 문자
MON_GROUPING − 금액 숫자의 그룹화 방식을 보여주는 배열 (예: 1 000 000)
INT_FRAC_DIGITS − 국제 표준 소수 자릿수
FRAC_DIGITS − 지역 표준 소수 자릿수
P_CS_PRECEDES − 양수 값 앞에 통화 기호가 위치하면 True(1), 뒤에 위치하면 False(0)
P_SEP_BY_SPACE − 양수 값과 통화 기호 사이에 공백이 있으면 True(1), 없으면 False(0)
N_CS_PRECEDES − 음수 값 앞에 통화 기호가 위치하면 True(1), 뒤에 위치하면 False(0)
N_SEP_BY_SPACE − 음수 값과 통화 기호 사이에 공백이 있으면 True(1), 없으면 False(0)
P_SIGN_POSN − 양수 값의 부호 표기 방식을 결정하는 서식 설정. 가능한 반환 값은 다음과 같습니다.
0 − 괄호가 금액과 통화 기호 전체를 감쌈
1 − 부호 문자열이 금액과 통화 기호 앞에 위치
2 − 부호 문자열이 금액과 통화 기호 뒤에 위치
3 − 부호 문자열이 통화 기호 바로 앞에 위치
4 − 부호 문자열이 통화 기호 바로 뒤에 위치
N_SIGN_POSN − 음수 값의 부호 표기 방식을 결정하는 서식 설정. 가능한 반환 값은 P_SIGN_POSN과 동일합니다.
숫자 카테고리(Numeric Category)
DECIMAL_POINT − 소수점 문자
RADIXCHAR − DECIMAL_POINT와 동일
THOUSANDS_SEP − 천 단위 구분자 문자
THOUSEP − THOUSANDS_SEP와 동일
GROUPING − 숫자의 그룹화 방식을 보여주는 배열
반환값(Return)
nl_langinfo() 함수는 호출이 성공하면 요청한 로케일 정보를 반환하고, 실패하면 FALSE를 반환합니다.
예제(Example)
아래 예제는 Linux 계열 환경에서 실행해야 하며, Windows 플랫폼에서는 이 함수를 사용할 수 없습니다.
<?php // 로케일을 한국어로 설정 setlocale(LC_ALL, 'ko_KR.UTF-8'); // 요일 이름 출력 (DAY_1 = 일요일) echo nl_langinfo(DAY_1); // 오전/오후 문자열 출력 echo nl_langinfo(AM_STR); ?>
위 코드처럼 setlocale()로 로케일을 먼저 설정한 후 nl_langinfo()를 호출하면, 해당 로케일에 맞는 언어·달력·통화·숫자 형식 정보를 손쉽게 가져올 수 있습니다.