Curl_Close 는 PHP의 컬 세션을 닫는 기능입니다. 컬 세션과 관련된 리소스를 자유롭게하는 데 사용됩니다. 자원 누출을 피할 수있는 장기 프로그램에서 컬 세션, 특히 장기 실행 프로그램에서 올바르게 닫는 것이 중요합니다.
curl_close($ch);
여기에서 $ ch는 우리가 사용하는 컬 세션을 나타내는 컬 핸들입니다. 각 컬 요청이 실행되면 Curl_Close가 자원을 확보하기 위해 호출되어야합니다.
HTTP 요청을 할 때 시간 초과 오류가 발생할 수 있습니다. Curl은 일반적으로 사용되는 두 가지 시간 초과 옵션을 제공합니다.
curlopt_timeout : 최대 실행 시간.
curlopt_connecttimeout : 연결 시간이 초과됩니다.
요청이 시간이 초과되면 Curl은 오류를 반환합니다. 일반적으로 curle_operation_timedout 오류입니다. 이 경우 Curl은 현재 요청을 중단하지만 이는 세션 리소스가 자동으로 릴리스되었음을 의미하지는 않습니다. 따라서 시간 초과 후 Curl_Close를 명시 적으로 호출하여 세션을 닫아야합니다.
HTTP 요청의 시간 초과가 발생한 경우 CURL 세션을 닫을뿐만 아니라 메모리 누출 또는 프로그램 충돌을 피하기 위해 오류를 올바르게 처리해야합니다. 다음은 CURL 요청에서 시간 초과 오류를 올바르게 처리하는 방법을 보여주는 예입니다.
<?php
// 초기화 cURL 세션
$ch = curl_init();
// 요청을 설정하십시오 URL
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/api/data");
// 반환 된 컨텐츠를 문자열로 설정하십시오
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 시간 초과 시간을 설정하십시오 5 두번째
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// 요청을 실행하십시오
$response = curl_exec($ch);
// 오류가 발생했는지 확인하십시오
if (curl_errno($ch)) {
// 오류 메시지를 받으십시오
echo "cURL 실수: " . curl_error($ch);
// 如果发生超时실수
if (curl_errno($ch) == CURLE_OPERATION_TIMEDOUT) {
echo "시간 초과 요청!시간 초과 상황이 처리되고 있습니다...";
}
}
// 如果没有실수,반환 된 데이터를 처리하십시오
if ($response !== false) {
// 正常반환 된 데이터를 처리하십시오
echo "요청이 성공했습니다: " . $response;
}
// 폐쇄 cURL 세션
curl_close($ch);
?>
이 코드에서는 먼저 CURL 세션을 초기화하고 요청 된 URL 및 시간 초과 매개 변수를 설정합니다. 다음으로 Curl_Exec ()을 사용하여 요청을 실행하고 Curl_erRNO ()를 사용하여 오류가 발생했는지 확인합니다. 타임 아웃 오류 ( curle_operation_timedout )가 발생하면 요청을 재 시도하거나 사용자에게 알리는 등 오류 처리 섹션에서 추가 논리 작업을 수행 할 수 있습니다.
시간 초과가 발생했는지 여부에 관계없이 Curl_Close ($ CH) 는 끝에 호출되어 CURL 세션 리소스가 릴리스되도록합니다.
요청 시간 초과 후 컬 세션이 제대로 닫히지 않으면 PHP는 메모리와 리소스를 계속 소비합니다. 장기 실행되는 PHP 스크립트 또는 동시 요청은 시스템 리소스가 불충분 할 수 있으며 서버 충돌을 일으킬 수도 있습니다. 따라서 Curl_Close를 사용하여 무료 리소스를 사용하는 것이 매우 중요합니다.
또한 많은 동시 요청을 처리하면서 컬 세션을 닫는 것을 잊어 버리면 성능 문제가 발생하고 메모리 누출과 같은 오류가 발생할 수 있습니다.