컬을 사용할 때는 일반적으로 다음 단계를 살펴 봅니다.
컬 세션 초기화 : curl_init () ;
요청 된 옵션을 설정하십시오 : curl_setopt () ;
컬 요청 실행 : curl_exec () ;
GET and Process Response Data : Curl_Exec () 를 통해 요청 된 응답을받습니다.
컬 세션을 닫습니다 : curl_close () .
여기서 Curl_Close ()는 CURL 세션과 관련된 리소스를 해방시키는 컬 세션을 닫는 함수입니다. 일반적으로 Curl_Close ()을 호출 한 후 세션이 닫혀 있으므로 CURL 요청의 응답 데이터에 더 이상 액세스 할 수 없습니다.
대답은 아니오 입니다.
Curl_Exec ()는 요청 된 응답 데이터를 반환합니다. Curl_Exec ()을 호출하여 요청을 실행할 때 리턴 된 응답 데이터를 변수에 저장할 수 있습니다. Curl_Close ()를 호출 한 후 응답 데이터에 액세스하려고하면 세션이 닫혔으므로 잘못되거나 예측할 수없는 동작이 발생합니다. 따라서 올바른 방법은 curl_close ()를 호출하기 전에 응답 데이터를 저장하고 처리했는지 확인하는 것입니다.
<?php
$ch = curl_init();
// 요청 된 설정 URL 그리고 다른 옵션
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 요청을 실행하고 응답 데이터를 가져옵니다
$response = curl_exec($ch);
// 폐쇄 cURL 세션
curl_close($ch);
// 在폐쇄后尝试访问 $response 데이터는 괜찮습니다,이미 변수에 저장되어 있기 때문입니다
echo $response;
?>
위의 예에서 먼저 CURL 요청을 실행하고 응답 데이터를 $ 응답 변수에 저장합니다. 그런 다음 CURL_CLOSE ()를 호출하여 CURL 세션을 닫는 다음 현재 저장되었으므로 $ 응답 변수의 데이터에 액세스 할 수 있습니다.
응답 데이터를 사용한 후 항상 Curl_Close ()를 호출하십시오
응답 데이터의 모든 작업을 완료 한 후 Curl_Close ()를 통해 필요한 처리를 놓치지 않았는지 확인하십시오. 모든 응답 데이터 구문 분석 및 기타 작업을 완료했는지 확인하십시오.
Curl_Exec ()를 사용하여 응답 데이터를 얻을 때주의하십시오
요청을 실행하려고하지만 응답 데이터에 신경 쓰지 않으면 Curlopt_returnTransfer 옵션을 생략하거나 False 로 설정할 수 있습니다. 이러한 방식으로 응답 데이터는 반환되지 않지만 브라우저에 직접 출력됩니다.
응답 데이터를 미리 저장합니다
여러 장소에서 응답 데이터를 사용해야하는 경우 Curl_Exec ()을 호출 한 후 응답 데이터를 변수에 저장하여 후속 처리에서 데이터를 사용할 수 있는지 확인할 수 있습니다.
Curl_Close () 호출 후 응답 데이터에 액세스하려고하지 마십시오.
curl_close () 가 호출되면 세션이 종료되고 세션과 관련된 모든 리소스가 릴리스됩니다. 이 후에 응답 데이터에 액세스하려고하면 오류가 발생할 수 있습니다.
Curl_Close () 함수는 CURL 세션을 닫고 관련 리소스를 해제하는 데 사용됩니다. Curl_Close ()를 호출 한 후 세션이 종료되었으므로 세션의 응답 데이터에 더 이상 액세스 할 수 없습니다. 따라서 Curl_Close ()를 호출하기 전에 응답 데이터를 처리하고 저장했는지 확인하십시오. 사용하는 올바른 방법은 다음과 같습니다. 응답 데이터를 얻은 다음 세션을 닫으려면 세션이 닫힌 후 유효하지 않은 데이터에 액세스하지 않도록 세션을 닫습니다.