이 글에서는 주로 PHP에서 컬을 사용하여 요청(GET 요청 및 POST 요청)을 보내는 방법을 소개합니다. 편집자는 꽤 좋다고 생각하여 지금 공유하고 참고용으로 제공하겠습니다. 편집기를 따라 살펴보겠습니다
CURL을 사용하여 요청을 보내는 기본 프로세스
CURL의 PHP 확장을 사용하여 HTTP 요청 보내기를 완료하는 단계는 일반적으로 다음과 같습니다.
1 연결을 초기화합니다.
2. CURL 옵션 설정
3. VURL 연결 핸들을 실행하고 가져옵니다.
// 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);위 코드에서는 네 가지 함수가 사용됩니다.
②CURLOPT_RETURNTRANSFER는 나중에 실행되는 컬_exec 함수의 반환이 URL의 반환 문자열이 아님을 나타내기 위해 1로 설정됩니다. 반환 문자 문자열은 표준 출력으로 전달되고 TRUE를 반환합니다.
3CURLLOPT_HEADER는 0으로 설정되어 HTTP 헤더 정보가 반환되지 않음을 나타냅니다.
curl_exec() 함수가 실행된 후, cur_getinfo() 함수를 사용하면 CURL 요청 출력 관련 정보를 가져올 수 있습니다. 샘플 코드는 다음과 같습니다. :
curl_exec($ch); $info = curl_getinfo($sh); echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';위 코드에서 컬_getinfo는 다음 데이터를 포함하는 연관 배열을 반환합니다. url: 네트워크 주소.
CURL을 사용하여 GET 요청 보내기 방법 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); }이 함수는 http_build_query를 사용하여 URL을 조합합니다. GET 매개변수를 컬_init 함수에 전달한 다음 CURL을 사용하여 HTTP 요청을 보냅니다. 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); }위 코드에서 CURLOPT_POSTFIELDS를 설정하는 것 외에도 CURL_POST를 true로 설정하여 이 요청이 POST 요청. GET 데이터는 POST 요청으로 전송될 수도 있습니다. URL에서 GET 요청 데이터를 조합하기만 하면 됩니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
php는 curl을 사용하여 액세스용 IP 및 소스를 시뮬레이션하는 방법을 구현합니다.
PHP는 인증이 필요한 페이지를 가져오는 curl 또는 file_get_contents 방법을 구현합니다
php 사용 curl시뮬레이션 양식 제출 기능 구현 방법
위 내용은 컬을 사용하여 PHP에서 요청을 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!