이 글에서는 주로 PHP에서 컬을 사용하여 요청(GET 요청 및 POST 요청)을 보내는 방법을 소개합니다. 편집자는 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 편집기를 따라 살펴보겠습니다
CURL을 사용하여 요청을 보내는 기본 프로세스
CURL의 PHP 확장을 사용하여 HTTP 요청 보내기를 완료하는 방법은 일반적으로 다음 단계로 구성됩니다. :
1. 연결 핸들을 초기화합니다.
2. CURL 옵션을 실행하고 결과를 얻습니다. 🎜>
다음 프로그램 조각은 CURL을 사용하여 HTTP를 보내는 일반적인 프로세스입니다.
// 1. 初始化 $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); // 3. 执行并获取HTML文档内容 $output = curl_exec($ch); if($output === FALSE ){ echo "CURL Error:".curl_error($ch); } // 4. 释放curl句柄 curl_close($ch);
curl_init() 및 curl_close() 함수는 각각 CURL 연결을 초기화하고 닫는 데 사용되며 둘 다 비교적 간단합니다.
curl_exec()는 CURL 요청을 실행합니다. 오류가 발생하지 않으면 함수는 해당 URL에서 반환된 데이터를 반환하며, 오류가 발생하면 만족을 문자열로 반환합니다. 거짓. 등호는 출력이 FALSE인지 여부를 결정하는 데 사용됩니다. 이는 빈 문자열 반환과 오류를 구별하기 위한 것입니다.
CURL 함수 라이브러리에서 가장 중요한 함수는 컬_setopt()입니다. 이 함수는 CURL 함수 라이브러리에서 정의한 옵션을 설정하여 HTTP 요청을 사용자 정의할 수 있습니다. 위의 코드 조각에는 세 가지 중요한 옵션이 사용됩니다.
①CURLOPT_URL은 요청된 URL을 지정합니다.
CURL에는 다양한 옵션이 있습니다. PHP 공식 웹사이트(http://www.php.cn/)에서 CURL이 지원하는 모든 옵션 목록을 볼 수 있습니다.
CURL 요청의 출력 정보를 가져옵니다
curl_exec() 함수가 실행된 후 cur_getinfo() 함수를 사용하여 CURL 요청 정보의 출력 정보를 가져옵니다. 샘플 코드는 다음과 같습니다.
curl_exec($ch); $info = curl_getinfo($sh); echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';
url: 네트워크 주소.
content_type: 콘텐츠 인코딩.
http_code: HTTP 상태 코드입니다.
header_size: 헤더의 크기입니다.
request_size: 요청의 크기입니다.
filetime: 파일이 생성된 시간입니다.
ssl_verify_result: SSL 확인 결과입니다.
redirect_count: 점프 횟수.
total_time: 총 걸린 시간입니다.
namelookup_time: DNS 쿼리 시간입니다.
connect_time: 연결을 기다리는 데 소요된 시간입니다.
pretransfer_time: 사전 전송 준비 시간입니다.
size_uplpad: 업로드되는 데이터의 크기입니다.
size_download: 다운로드되는 데이터의 크기입니다.
speed_download: 다운로드 속도.
speed_upload: 업로드 속도.
download_content_length: 다운로드 콘텐츠의 길이입니다.
upload_content_length: 업로드된 콘텐츠의 길이입니다.
starttransfer_time: 환승을 시작하는 시간표입니다.
redirect_time: 리디렉션 시간.
curl_getinfo() 함수에는 선택적 매개변수 $opt도 있으며, 이를 통해 위 필드에 해당하는 일부 상수를 설정할 수 있습니다. 두 번째 매개변수가 설정된 경우 지정된 정보. 예를 들어 $opt를 CURLINFO_TOTAL_TIME으로 설정하면, 컬_getinfo() 함수는 전체 전송에 소요되는 시간인 total_time만 반환하게 되는데, 이는 특정 전송 정보에만 주의하면 되는 경우 $opt 매개변수를 설정하는 것이 의미가 있다. .
CURL을 사용하여 GET 요청 보내기
CURL을 사용하여 GET 요청을 보내는 방법은 다음과 같습니다. 올바른 형식으로 URL을 조합하세요. 요청 주소와 GET 데이터는 "?"로 구분되고, GET 변수의 이름과 값은 "="로 구분되며, 각 GET 이름과 값은 "&"로 연결됩니다. PHP는 GET 요청과 데이터 부분을 조합하는 데 특별히 사용되는 함수인 http_build_query를 제공합니다. 이 함수는 연관 배열을 받아들이고 연관된 데이터로 설명되는 GET 요청 문자열을 반환합니다. 이 함수를 CURL 전송 HTTP 요청의 일반적인 프로세스와 결합하여 GET 요청을 보내는 함수인 doCurlGetRequest를 닫았습니다. 구체적인 코드는 다음과 같습니다:
/** *@desc 封闭curl的调用接口,get的请求方式。 */ function doCurlGetRequest($url,$data,$timeout = 5){ if($curl == "" || $timeout <= 0){ return false; } $url = $url.'?'.http_bulid_query($data); $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); return curl_exec($con); }
CURL을 사용하여 POST 요청 보내기
CURL에서 제공하는 CURLOPT_POSTFIELDS 옵션을 사용하여 POST 문자열 데이터를 넣을 수 있습니다. 요청. 마찬가지로 POST 요청을 보내는 함수인 doCurlPostRequest를 구현했습니다. 코드는 다음과 같습니다.
/** ** @desc 封装 curl 的调用接口,post的请求方式 **/ function doCurlPostRequest($url,$requestString,$timeout = 5){ if($url == '' || $requestString == '' || $timeout <=0){ return false; } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST,true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout); return curl_exec($con); }
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 PHP 중국어 웹사이트를 지지해 주시길 바랍니다.
PHP에서 컬을 사용하여 요청 보내기(GET 요청 및 POST 요청)와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!
관련 기사:
PHP가 컬을 사용하여 가져오기 요청을 시작할 때 발생하는 URL 매개변수 문제