PHP의 IntlChar::isprint() 함수는 주어진 입력 문자가 인쇄 가능한(printable) 문자인지 여부를 검사하는 함수입니다. 인쇄 가능한 문자란 화면에 표시하거나 출력 장치에 나타낼 수 있는 문자를 의미하며, 줄바꿈(\n)이나 탭(\t) 같은 제어 문자는 이에 해당하지 않습니다.
문법(Syntax)
IntlChar::isprint( val )
매개변수
val − 검사할 대상 값입니다. 정수형 유니코드 코드 포인트 또는 UTF-8로 인코딩된 문자열을 사용할 수 있으며, 반드시 단일 문자만 전달해야 합니다. (필수)
반환 값
주어진 값(val)이 인쇄 가능한 문자이면 bool(true)를, 그렇지 않으면 bool(false)를 반환합니다. 두 글자 이상의 문자열처럼 유효하지 않은 입력이 전달되면 NULL을 반환합니다.
예제 1: 기본 사용법
다음은 다양한 문자에 대해 인쇄 가능 여부를 확인하는 예제입니다.
<?php
var_dump(IntlChar::isprint("K"));
echo "<br>";
var_dump(IntlChar::isprint("&"));
echo "<br>";
var_dump(IntlChar::isprint(" "));
?>
출력 결과:
bool(true)
bool(true)
bool(false)
알파벳 'K'와 특수 문자 '&'는 화면에 표시할 수 있는 문자이므로 TRUE가 반환되고, 줄바꿈 문자 '\n'은 제어 문자에 해당하므로 FALSE가 반환됩니다.
예제 2: 잘못된 입력 처리
IntlChar::isprint() 함수는 한 번에 하나의 문자만 검사할 수 있습니다. 두 글자 이상의 문자열을 전달하면 어떻게 되는지 살펴보겠습니다.
<?php
var_dump(IntlChar::isprint("1234"));
echo "<br>";
var_dump(IntlChar::isprint("1"));
echo "<br>";
var_dump(IntlChar::isprint("hvhj165e615"));
?>
출력 결과:
NULL
bool(true)
NULL
한 글자짜리 숫자 '1'은 인쇄 가능한 문자이므로 bool(true)가 반환됩니다. 반면 '1234'나 'hvhj165e615'처럼 여러 글자로 구성된 문자열은 유효한 단일 문자가 아니기 때문에 NULL이 반환됩니다.
참고 사항
- IntlChar 클래스를 사용하려면 PHP에 intl 확장 모듈이 설치되어 있어야 합니다.
- 공백 문자(' ') 역시 인쇄 가능한 문자로 간주되어 TRUE를 반환합니다.
- 줄바꿈(\n), 탭(\t), 캐리지 리턴(\r) 등의 제어 문자는 FALSE를 반환합니다.