PHP의 connection_status() 함수는 현재 스크립트와 클라이언트(브라우저) 간의 연결 상태를 확인하는 데 사용됩니다. 사용자가 페이지 로딩을 중단하거나 네트워크 오류가 발생했을 때, 또는 스크립트 실행 시간이 초과되었을 때 이 함수를 통해 해당 상태를 파악할 수 있습니다.
문법(Syntax)
connection_status()
매개변수(Parameters)
이 함수는 매개변수를 받지 않습니다.
반환값(Return)
connection_status() 함수는 아래와 같은 상태 비트필드(bitfield) 값을 반환합니다.
0 – CONNECTION_NORMAL: 연결이 정상적으로 작동 중인 상태
1 – CONNECTION_ABORTED: 사용자가 중단했거나 네트워크 오류로 인해 연결이 끊어진 상태
2 – CONNECTION_TIMEOUT: 연결 시간이 초과된 상태
3 – CONNECTION_ABORTED & CONNECTION_TIMEOUT: 연결이 중단되었으면서 동시에 시간도 초과된 상태
사용 예제
다음은 connection_status() 함수를 활용하여 연결 상태를 판별하는 예제입니다.
<?php
switch (connection_status()) {
case CONNECTION_NORMAL:
$msg = '연결이 정상 상태입니다!';
break;
case CONNECTION_ABORTED:
$msg = '연결이 중단되었습니다!';
break;
case CONNECTION_TIMEOUT:
$msg = '연결 시간이 초과되었습니다!';
break;
case (CONNECTION_ABORTED & CONNECTION_TIMEOUT):
$msg = '연결이 중단되고 시간도 초과되었습니다!';
break;
default:
$msg = '알 수 없는 상태입니다!';
break;
}
echo $msg;
?>참고 사항
connection_status() 함수는 주로 긴 시간 동안 실행되는 스크립트나 대용량 파일 처리 작업에서 유용하게 활용됩니다. 클라이언트의 연결이 끊긴 경우 불필요한 작업을 중단하여 서버 자원을 절약할 수 있으며, ignore_user_abort() 함수와 함께 사용하면 사용자 중단 여부에 따른 세밀한 제어가 가능합니다.