>  기사  >  백엔드 개발  >  PHP에서 컬을 사용하여 요청(GET 요청 및 POST 요청) 보내기

PHP에서 컬을 사용하여 요청(GET 요청 및 POST 요청) 보내기

高洛峰
高洛峰원래의
2017-03-22 10:20:332091검색

이 글에서는 주로 PHP에서 컬을 사용하여 요청(GET 요청 및 POST 요청)을 보내는 방법을 소개합니다. 편집자는 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 편집기를 따라 살펴보겠습니다

CURL을 사용하여 요청을 보내는 기본 프로세스

CURL의 PHP 확장을 사용하여 HTTP 요청 보내기를 완료하는 방법은 일반적으로 다음 단계로 구성됩니다. :

1. 연결 핸들을 초기화합니다.

2. CURL 옵션을 실행하고 결과를 얻습니다. 🎜>

4. VURL 연결 핸들을 해제합니다.


다음 프로그램 조각은 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);


4개는 위 코드



curl_init() 및 curl_close() 함수는 각각 CURL 연결을 초기화하고 닫는 데 사용되며 둘 다 비교적 간단합니다.

  • curl_exec()는 CURL 요청을 실행합니다. 오류가 발생하지 않으면 함수는 해당 URL에서 반환된 데이터를 반환하며, 오류가 발생하면 만족을 문자열로 반환합니다. 거짓. 등호는 출력이 FALSE인지 여부를 결정하는 데 사용됩니다. 이는 빈 문자열 반환과 오류를 구별하기 위한 것입니다.

  • CURL 함수 라이브러리에서 가장 중요한 함수는 컬_setopt()입니다. 이 함수는 CURL 함수 라이브러리에서 정의한 옵션을 설정하여 HTTP 요청을 사용자 정의할 수 있습니다. 위의 코드 조각에는 세 가지 중요한 옵션이 사용됩니다.

  • ①CURLOPT_URL은 요청된 URL을 지정합니다.

②CURLOPT_RETURNTRANSFER는 1로 설정되어 컬_exec 함수를 나타냅니다. 반환은 표준 출력으로 전달하고 TRUE를 반환하는 대신 URL의 반환 문자열입니다.


③CURLLOPT_HEADER는 HTTP 헤더 정보가 반환되지 않음을 나타내기 위해 0으로 설정됩니다. .


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'].'秒';


위 코드에서 컬_getinfo는 다음 데이터를 포함하는 연관 배열:


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.&#39;?&#39;.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를 사용하여 어셈블된 GET 매개변수가 포함된 URL을 컬_init 함수에 전달한 후 CURL을 사용하여 HTTP 요청을 보냅니다.


CURL을 사용하여 POST 요청 보내기

CURL에서 제공하는 CURLOPT_POSTFIELDS 옵션을 사용하여 POST 문자열 데이터를 넣을 수 있습니다. 요청. 마찬가지로 POST 요청을 보내는 함수인 doCurlPostRequest를 구현했습니다. 코드는 다음과 같습니다.

/**
** @desc 封装 curl 的调用接口,post的请求方式
**/
function doCurlPostRequest($url,$requestString,$timeout = 5){
 if($url == &#39;&#39; || $requestString == &#39;&#39; || $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 중국어 웹사이트를 지지해 주시길 바랍니다.

PHP에서 컬을 사용하여 요청 보내기(GET 요청 및 POST 요청)와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

관련 기사:

PHP가 컬을 사용하여 가져오기 요청을 시작할 때 발생하는 URL 매개변수 문제

컬 함수를 사용하는 PHP에 대한 참고 사항 Post 요청 보내기 문제 예시 상세 설명

PHP 개발 스킬(8) - CURL 요청 코드 상세

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.