Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP ctype_cntrl() 함수 완벽 가이드 – 제어 문자 검사 방법

ctype_cntrl() 함수는 문자열이 제어 문자(control characters)로만 구성되어 있는지 확인하는 PHP 내장 함수입니다. 현재 로케일(locale) 설정을 기준으로 판단하며, 텍스트의 모든 문자가 제어 문자라면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

제어 문자란?

제어 문자는 줄바꿈(\n), 캐리지 리턴(\r), 탭(\t), 널 문자(\0)처럼 화면에 출력되지 않고 특정 동작을 제어하는 데 사용되는 문자입니다. 사용자 입력 데이터의 유효성을 검사하거나 이진 데이터를 처리할 때 유용하게 활용됩니다.

문법(Syntax)

ctype_cntrl(string $text): bool

매개변수(Parameters)

  • str − 제어 문자 여부를 검사할 대상 문자열입니다.

반환값(Return)

  • 문자열의 모든 문자가 제어 문자이면 TRUE를 반환합니다.
  • 제어 문자가 아닌 문자가 하나라도 포함되어 있거나 빈 문자열인 경우 FALSE를 반환합니다.

예제(Example)

다음 예제는 두 개의 문자열을 배열로 만들고, 각 문자열이 모두 제어 문자로 구성되어 있는지 확인합니다.

<?php
$arr = array('str1' => "\n\r\t", 'str2' => "demo76876test");
foreach ($arr as $a => $demo) {
    if (ctype_cntrl($demo)) {
        echo "$a has all control characters. \n";
    } else {
        echo "$a does not have all control characters. \n";
    }
}
?>

실행 결과(Output)

str1 has all control characters.
str2 does not have all control characters.

결과 해설

str1은 줄바꿈(\n), 캐리지 리턴(\r), 탭(\t)만 포함하고 있으므로 모든 문자가 제어 문자입니다. 반면 str2에는 알파벳과 숫자가 섞여 있어 제어 문자가 아닌 일반 문자가 포함되어 있으므로 FALSE가 반환됩니다.

활용 팁

ctype_cntrl()은 폼 입력 값 검증 시 숨겨진 제어 문자가 포함되었는지 확인하거나, 텍스트 파일에서 비정상적인 제어 문자를 필터링할 때 활용할 수 있습니다. 참고로 PHP는 ctype_alnum(), ctype_digit(), ctype_alpha() 등 다양한 ctype 계열 함수를 제공하므로 상황에 맞게 함께 사용하면 더욱 견고한 유효성 검사를 구현할 수 있습니다.