PHP 프로그래밍에서 스크립트 실행 시간은 제한적이며 기본적으로 스크립트 실행 시간은 일반적으로 30 초입니다. 스크립트 실행 시간이 한계를 초과하면 PHP가 스크립트를 자동으로 종료하고 타임 아웃 오류를 던집니다. 이를 피하기 위해 PHP는 SET_TIME_LIMIT () 함수를 제공하여 스크립트의 최대 실행 시간을 수동으로 설정하여 장기 실행 작업을 원활하게 완료 할 수 있도록합니다.
set_time_limit () 는 현재 스크립트에서 실행할 수있는 최대 초 수를 설정하는 PHP의 내장 함수입니다. 이 기능을 호출 한 후 PHP는 타이머를 재설정하고 통화에서 다시 시간을 보냅니다.
함수 정의는 다음과 같습니다.
set_time_limit(int $seconds): bool
$ Seconds 매개 변수는 스크립트를 실행하는 데 허용되는 초 수를 나타냅니다. 0으로 설정하면 제한이 없으며 실행 시간이 길기 때문에 스크립트가 종료되지 않습니다.
반환 값은 부울 유형이며, 성공하면 true를 반환하고 실패하면 거짓입니다 .
타이머 재설정 : 각 통화는 스크립트의 최대 실행 시간 타이밍을 재설정합니다.
비 안전 모드에서만 효과적입니다 : PHP가 안전 모드 (SAFE_MODE)에서 실행중인 경우 SET_TIME_LIMIT () 가 유효하지 않습니다.
CLI 모드 : 명령 줄 모드에는 일반적으로 시간 제한이 없으며 Set_Time_limit () 는 영향을 미치지 않습니다.
php.ini에서 max_execution_time과 함께 사용 : 기본 최대 실행 시간은 30 초이며 set_time_limit () 로 재정의 할 수 있습니다.
다음은 set_time_limit () 의 일반적인 사용법을 보여주는 몇 가지 예입니다.
60 초가 소요되는 작업을 실행해야한다고 가정하면 기본 30 초가 시간을 초과합니다.
<?php
// 최대 실행 시간을 설정하십시오 90 두번째
set_time_limit(90);
echo "시간이 많이 걸리는 작업 실행을 시작하십시오...\n";
for ($i = 0; $i < 60; $i++) {
sleep(1); // 시뮬레이션 시간 소모 작업
echo "실행 {$i} 두번째\n";
}
echo "작업이 완료되었습니다。\n";
?>
이 예에서 SET_TIME_LIMIT (90)를 호출 한 후 스크립트는 최대 90 초의 실행을 허용하며 기본 30 초에서 종료되지 않습니다.
일부 작업에는 불확실한 실행 시간이 있으며 시간 초과로 제한 할 필요가 없습니다.
<?php
// 실행 시간 제한을 취소합니다
set_time_limit(0);
while (true) {
// 다음은 지속적으로 실행 해야하는 코드입니다.
echo "스크립트가 지속적으로 실행 중입니다...\n";
sleep(5);
}
?>
과도한 실행 시간으로 인해 스크립트가 종료되지 않습니다.
원격 인터페이스에 액세스 할 때 네트워크 지연으로 인해 요청 시간 초과가 발생할 수 있습니다. 스크립트 실행 시간을 연장하여 요청을 완료 할 수 있는지 확인할 수 있습니다.
<?php
// 스크립트의 최대 실행 시간을 연장하십시오
set_time_limit(120);
$url = "https://gitbox.net/api/data";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "요청 결과:" . $response;
}
curl_close($ch);
?>
여기서 https://gitbox.net/api/data 는 예제의 요청 주소이며 set_time_limit (120)은 스크립트에 응답을 기다릴 시간이 충분합니다.
set_time_limit () 는 PHP 스크립트의 최대 실행 시간을 제어하는 중요한 기능입니다.
이 기능을 합리적으로 사용하여 스크립트 타임 아웃을 피하면 특히 시간이 많이 걸리는 작업을 수행 할 때 작업 중단을 유발하십시오.
스크립트의 실행 시간은 서버 리소스 낭비를 피하기 위해 무제한이 될 수 없습니다.
네트워크 요청 및 파일 처리와 같은 시간 소비 작업을 결합 할 때 실행 시간을 적절하게 설정하는 것이 가장 좋습니다.
set_time_limit () 의 사용을 마스터하면 PHP 스크립트를보다 안정적이고 효율적으로 만들 수있어 시간 초과 오류로 인한 문제가 줄어 듭니다.