>백엔드 개발 >PHP 문제 >PHP에서 컬의 사용법은 무엇입니까?

PHP에서 컬의 사용법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-21 11:40:322977검색

PHP에서 컬의 사용법은 다음과 같습니다. 1. CURL을 사용하여 요청을 보냅니다. 2. CURL 요청의 출력 정보를 가져옵니다. 3. CURL을 사용하여 GET 요청을 보냅니다. 4. CURL을 사용하여 POST 요청을 보냅니다.

PHP에서 컬의 사용법은 무엇입니까?

PHP에서 컬의 사용법은 다음과 같습니다:

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

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

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

3. VURL 연결 핸들을 실행하고 해제합니다.

다음 프로그램 조각은 CURL을 사용하여 HTTP를 보내는 일반적인 프로세스입니다

// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://www.codetc.com");
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 연결을 닫는 것은 상대적으로 간단합니다.

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

CURL 함수 라이브러리에서 가장 중요한 함수는 curl_setopt()로, CURL 함수 라이브러리에서 정의한 옵션을 설정하여 HTTP 요청을 사용자 정의할 수 있습니다. 위의 코드 조각에는 세 가지 중요한 옵션이 사용됩니다. curl_init()curl_close()分别是初始化CURL连接和关闭CURL连接,都比较简单。

curl_exec()执行CURL请求,如果没有错误发生,该函数的返回是对应URL返回的数据,以字符串表示满意;如果发生错误,该函数返回 FALSE。需要注意的是,判断输出是否为FALSE用的是全等号,这是为了区分返回空串和出错的情况。

CURL函数库里最重要的函数是curl_setopt(),它可以通过设定CURL函数库定义的选项来定制HTTP请求。上述代码片段中使用了三个重要的选项:

  • CURLOPT_URL 指定请求的URL;

  • CURLOPT_RETURNTRANSFER 设置为1表示稍后执行的curl_exec函数的返回是URL的返回字符串,而不是把返回字符串定向到标准输出并返回TRUE;

  • CURLLOPT_HEADER设置为0表示不返回HTTP头部信息。

CURL的选项还有很多,可以到PHP的官方网站(http://www.php.net/manual/en/function.curl-setopt.php)上查看CURL支持的所有选项列表。

二、获取CURL请求的输出信息

curl_exec()函数执行之后,可以使用curl_getinfo()函数获取CURL请求输出的相关信息,示例代码如下:

curl_exec($ch);
$info = curl_getinfo($sh);
echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

上述代码中curl_getinfo返回的是一个关联数组,包含以下数据:

  • url:网络地址。

  • content_type:内容编码。

  • http_code:HTTP状态码。

  • header_size:header的大小。

  • 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,则curl_getinfo()函数只返回total_time,即总传输消耗的时间,在只需要关注某些传输信息时,设置$opt参数很有意义。

三、使用CURL发送GET请求

如何使用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.&#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);
}

四、使用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

  • CURLOPT_URL은 요청된 URL을 지정합니다.
  • CURLOPT_RETURNTRANSFER는 다음으로 설정됩니다. 1은 반환 문자열을 표준 출력으로 지정하고

  • CURLLOPT_HEADER를 0으로 설정하는 대신 나중에 실행되는 컬_exec 함수의 반환이 URL의 반환 문자열임을 의미합니다. HTTP 헤더 정보.
🎜 CURL에 대한 다양한 옵션이 있습니다. PHP 공식 웹사이트(http://www.php.net/manual/en/function.curl-setopt.php) 목록에서 CURL 지원을 확인할 수 있습니다. 모든 옵션 중. 🎜🎜🎜2. CURL 요청의 출력 정보 얻기🎜🎜🎜 curl_exec() 함수가 실행된 후, curl_getinfo() 함수를 사용하면 CURL 요청에 의해 출력된 관련 정보를 얻을 수 있습니다. . 샘플 코드는 다음과 같습니다. 🎜rrreee🎜 위 코드에서 컬_getinfo는 다음 데이터를 포함하는 연관 배열을 반환합니다. 🎜
  • 🎜url: network 주소. 🎜
  • 🎜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으로 설정된 경우 curl_getinfo() 함수는 주의가 필요한 경우 총 전송 시간인 total_time만 반환합니다. 특정 전송 정보에 대해서는 $opt를 설정하십시오. 매개변수가 의미가 있습니다. 🎜🎜🎜3. CURL을 사용하여 GET 요청 보내기🎜🎜🎜CURL을 사용하여 GET 요청을 보내는 방법 GET 요청을 보내는 방법은 URL을 올바른 형식으로 조합하는 것입니다. 요청 주소와 GET 데이터는 "?"로 구분되고, GET 변수의 이름과 값은 "="로 구분되며, 각 GET 이름과 값은 "&"로 연결됩니다. PHP는 GET 요청과 데이터 부분을 조합하는 데 특별히 사용되는 함수인 http_build_query를 제공합니다. 이 함수는 연관 배열을 받아들이고 연관된 데이터로 설명되는 GET 요청 문자열을 반환합니다. CURL이 HTTP 요청을 보내는 일반적인 프로세스와 결합되어 GET 요청을 보내는 함수인 doCurlGetRequest를 닫았습니다. 구체적인 코드는 다음과 같습니다: 🎜rrreee🎜🎜 4. CURL을 사용하여 POST 요청 보내기 🎜🎜🎜 CURL CURLOPT_POSTFIELDS에서 제공하는 옵션을 사용할 수 있으며, 이 옵션을 POST 문자열 데이터로 설정하여 요청을 본문에 넣습니다. 마찬가지로, POST 요청인 doCurlPostRequest를 보내는 함수를 구현했습니다. 코드는 다음과 같습니다. 🎜rrreee🎜위 코드에서 CURLOPT_POSTFIELDS를 설정하는 것 외에도 CURL_POST를 true, 이 요청을 POST 요청으로 식별합니다. GET 데이터는 POST 요청으로 전송될 수도 있습니다. URL에서 GET 요청 데이터를 조합하기만 하면 됩니다. 🎜🎜🎜관련 학습 권장 사항: 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜

위 내용은 PHP에서 컬의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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