
preg_last_error_msg 함수는 PHP에서 발생한 마지막 정규표현식 관련 에러 메시지를 반환합니다. 에러 코드는 다음과 같이 구분할 수 있습니다.
- PREG_NO_ERROR : 정상적으로 처리되었습니다.
- PREG_INTERNAL_ERROR : 내부 오류가 발생했습니다.
- PREG_BACKTRACK_LIMIT_ERROR : 백트래킹 제한이 초과되었습니다.
- PREG_RECURSION_LIMIT_ERROR : 재귀 제한이 초과되었습니다.
- PREG_BAD_UTF8_ERROR : 잘못된 UTF-8 문자열이 사용되었습니다.
- PREG_BAD_UTF8_OFFSET_CROP : 잘못된 UTF-8 문자열의 오프셋이 사용되었습니다.
- PREG_JIT_STACKLIMIT_ERROR : JIT 스택 제한이 초과되었습니다.
- PREG_INTERNAL_RECURSION_ERROR : 내부 재귀 오류가 발생했습니다.
이러한 에러 코드를 구분하고 처리하려면, preg_last_error() 함수를 사용하여 에러 코드를 먼저 확인한 뒤, 에러 코드에 따라 적절한 처리를 수행하면 됩니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$code = preg_last_error();
switch ($code) {
case PREG_NO_ERROR:
echo "정상적으로 처리되었습니다.";
break;
case PREG_INTERNAL_ERROR:
echo "내부 오류가 발생했습니다.";
break;
case PREG_BACKTRACK_LIMIT_ERROR:
echo "백트래킹 제한이 초과되었습니다.";
break;
case PREG_RECURSION_LIMIT_ERROR:
echo "재귀 제한이 초과되었습니다.";
break;
case PREG_BAD_UTF8_ERROR:
echo "잘못된 UTF-8 문자열이 사용되었습니다.";
break;
case PREG_BAD_UTF8_OFFSET_CROP:
echo "잘못된 UTF-8 문자열의 오프셋이 사용되었습니다.";
break;
case PREG_JIT_STACKLIMIT_ERROR:
echo "JIT 스택 제한이 초과되었습니다.";
break;
case PREG_INTERNAL_RECURSION_ERROR:
echo "내부 재귀 오류가 발생했습니다.";
break;
default:
echo "알 수 없는 오류가 발생했습니다.";
break;
}
2025-03-23 22:13