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

PHP ctype_xdigit() 함수 완벽 정리 – 문자열이 16진수인지 검사하는 방법

PHP의 ctype_xdigit() 함수는 주어진 문자열이 16진수(hexadecimal) 숫자로만 구성되어 있는지 검사하는 함수입니다. 문자열의 모든 문자가 10진수 숫자(0~9) 또는 [A-Fa-f] 범위의 영문자에 해당하면 TRUE를 반환하고, 하나라도 해당하지 않는 문자가 포함되어 있으면 FALSE를 반환합니다.

주요 활용 사례

이 함수는 사용자 입력값이 유효한 16진수 색상 코드(#FFFFFF 등의 값 부분)인지 확인하거나, 해시 값·16진수 인코딩 데이터의 형식을 검증할 때 유용하게 사용됩니다.

문법

ctype_xdigit(str)

매개변수

  • str − 검사할 대상 문자열입니다.

반환값

문자열의 모든 문자가 16진수 '숫자', 즉 10진수 숫자(0~9) 또는 [A-Fa-f] 범위의 문자라면 TRUE를 반환하고, 그 외의 경우에는 FALSE를 반환합니다. 참고로 빈 문자열을 전달하면 PHP 5.1 버전 이후부터는 항상 FALSE가 반환됩니다.

예제

다음은 ctype_xdigit() 함수의 동작을 보여주는 예제입니다.

<?php
$str = array('ABCD', 'AB768768ff');
foreach ($str as $a) {
    if (ctype_xdigit($a)) {
        echo "$a has all hexadecimal digits. \n";
    } else {
        echo "$a does not have all hexadecimal digits. \n";
    }
}
?>

출력 결과

ABCD has all hexadecimal digits.
AB768768ff has all hexadecimal digits.

결과 해석

'ABCD'와 'AB768768ff' 두 문자열은 모두 숫자와 A~F 범위의 알파벳으로만 이루어져 있으므로, 두 경우 모두 유효한 16진수 문자열로 판별되어 TRUE가 반환됩니다. 만약 'G123'처럼 G 이상의 알파벳이나 특수문자가 포함된 문자열을 검사하면 FALSE가 반환됩니다.

함께 알아두면 좋은 함수

  • ctype_digit() − 문자열이 10진수 숫자로만 구성되어 있는지 검사합니다.

  • ctype_alnum() − 문자열이 영문자와 숫자로만 구성되어 있는지 검사합니다.

  • ctype_upper() / ctype_lower() − 문자열이 각각 대문자 또는 소문자로만 구성되어 있는지 검사합니다.