>  기사  >  백엔드 개발  >  PHP 시작하기: CURL 확장

PHP 시작하기: CURL 확장

王林
王林원래의
2023-05-21 08:36:051739검색

PHP는 웹 개발에 널리 사용되는 언어이며, CURL은 PHP에서 가장 널리 사용되는 확장 기능 중 하나입니다. 이 기사에서는 초보자가 빠르게 시작할 수 있도록 CURL의 기본 사용법과 응용 프로그램을 소개합니다.

1. CURL 소개

CURL은 URL 구문을 사용하여 데이터를 전송하는 명령줄 도구이며 여러 프로토콜을 지원하고 여러 플랫폼에서 실행될 수 있습니다. PHP에서 CURL 확장을 사용할 때 주로 HTTP 및 HTTPS와 같은 프로토콜을 통한 네트워크 통신에 사용되어 다른 서버로 데이터를 보내고, 서버 응답을 얻고, 양식 제출을 시뮬레이션합니다.

2. CURL 설치

PHP에서 CURL 확장을 사용하려면 로컬 환경이 CURL 라이브러리를 지원하는지 확인해야 합니다. 리눅스와 맥 OS에서

설치가 완료된 후 phpinfo() 함수를 통해 설치 여부를 확인할 수 있습니다. curl 지원이 활성화되었다는 의미입니다. CURL 확장이 준비되었습니다.

3. CURL의 기본 사용법phpinfo()函数查看是否已经安装完毕,如果提示curl支持已启用,则表示CURL扩展已经准备就绪。

三、CURL的基本用法

  1. 发送GET请求

发送GET请求的基础格式为:

sudo apt-get install libcurl4-openssl-dev // Debian/Ubuntu 

sudo yum install curl-devel // CentOS/Fedora

其中,curl_init()函数用于初始化一个CURL对象,curl_setopt()函数用于设置CURL请求的选项,curl_exec()函数用于执行CURL请求并获取响应结果,curl_close()函数用于关闭CURL对象。

在上述例子中,我们使用curl_setopt()函数设置了请求的URL、CURLOPT_RETURNTRANSFER选项和CURLOPT_HEADER选项。其中,CURLOPT_RETURNTRANSFER选项设置为1时,表示将获取的响应结果以字符串的形式返回。CURLOPT_HEADER选项设置为0时,则表示在响应结果中不包含响应头部信息。

  1. 发送POST请求

发送POST请求的基本格式为:

<?php
//创建CURL对象
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user?id=123");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行CURL请求并获取响应结果
$output = curl_exec($ch);
//关闭CURL对象
curl_close($ch);
//输出响应结果
echo $output; 
?>

其中,curl_setopt()函数新增了两个选项:CURLOPT_POSTCURLOPT_POSTFIELDSCURLOPT_POST选项设置为1时,表示采用POST方式发送请求,CURLOPT_POSTFIELDS选项设置为字符串时,表示将这些数据作为POST请求的正文发送。

需要注意的是,为了能够正确地将POST数据发送给服务器,需要设置正确的Content-Type头部信息。这可以通过curl_setopt()函数的CURLOPT_HTTPHEADER选项进行设置。

四、CURL的进阶用法

  1. 设置HTTP头部信息

可以通过curl_setopt()函数的CURLOPT_HTTPHEADER选项来设置HTTP头部信息。

<?php
//创建CURL对象
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=123&name=John");

//执行CURL请求并获取响应结果
$output = curl_exec($ch);
//关闭CURL对象
curl_close($ch);
//输出响应结果
echo $output;
?>

以上代码设置了Content-Type头部信息为application/json,设置了一个名为Authorization的头部信息,并为其设置了值。这个头部信息的作用是为请求提供一个安全令牌,以便服务器能够验证请求的合法性。

  1. SSL/TLS验证

SSL/TLS验证是一种通过判断加密证书的合法性来确保请求的安全性的机制。CURL提供了多种安全验证方式,可以通过curl_setopt()函数的CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST

    GET 요청 보내기

    GET 요청 보내기의 기본 형식은 다음과 같습니다.

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer xxx'));
      그 중 curl_init() 함수를 사용하여 초기화합니다. CURL 개체, curl_setopt() 함수는 CURL 요청의 옵션을 설정하는 데 사용되며, curl_exec() 함수는 CURL 요청을 실행하고 응답을 얻는 데 사용됩니다. 결과적으로 curl_close() 함수는 CURL 객체를 닫는 데 사용됩니다.
    1. 위의 예에서는 curl_setopt() 함수를 사용하여 요청된 URL, CURLOPT_RETURNTRANSFER 옵션 및 CURLOPT_HEADER 옵션을 설정했습니다. 그 중 CURLOPT_RETURNTRANSFER 옵션을 1로 설정하면 획득한 응답 결과를 문자열 형태로 반환한다는 뜻이다. CURLOPT_HEADER 옵션이 0으로 설정되면 응답 헤더 정보가 응답 결과에 포함되지 않는다는 의미입니다.

      POST 요청 보내기

      POST 요청 보내기의 기본 형식은 다음과 같습니다.

      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

      그 중 curl_setopt() 함수는 두 가지 새로운 옵션을 추가합니다. CURLOPT_POSTCURLOPT_POSTFIELDS. CURLOPT_POST 옵션이 1로 설정되면 POST 모드로 요청이 전송된다는 의미입니다. CURLOPT_POSTFIELDS 옵션이 문자열로 설정되면 해당 데이터가 전송된다는 의미입니다. POST 요청의 본문으로 전송됩니다.

      POST 데이터를 서버에 올바르게 전송하려면 올바른 Content-Type 헤더 정보를 설정해야 한다는 점에 유의하세요. 이는 curl_setopt() 함수의 CURLOPT_HTTPHEADER 옵션을 통해 설정할 수 있습니다. 🎜🎜4. CURL 고급 사용법🎜
        🎜HTTP 헤더 정보 설정🎜🎜🎜 curl_setopt() 함수의 CURLOPT_HTTPHEADER 옵션을 통해 HTTP 헤더를 설정할 수 있습니다. 정보. 🎜
        curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies');
        🎜위 코드는 Content-Type 헤더 정보를 application/json으로 설정하고 Authorization이라는 헤더 정보를 설정하고 이에 대한 값을 설정합니다. 이 헤더의 목적은 서버가 요청의 적법성을 확인할 수 있도록 요청에 대한 보안 토큰을 제공하는 것입니다. 🎜
          🎜SSL/TLS 확인🎜🎜🎜SSL/TLS 확인은 암호화 인증서의 적법성을 판단하여 요청의 보안을 보장하는 메커니즘입니다. CURL은 curl_setopt() 함수의 CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST 옵션을 통해 수행할 수 있는 다양한 보안 확인 방법을 제공합니다. 🎜🎜예를 들어 다음 코드를 사용하여 SSL 인증서 확인을 끌 수 있습니다. 🎜
          curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies');
          🎜실제 응용 프로그램에서는 SSL 인증서 확인을 최대한 활성화하는 것이 매우 중요합니다. 요청의 보안을 보장합니다. 🎜🎜🎜쿠키 처리🎜🎜🎜CURL은 HTTP 쿠키를 자동으로 처리할 수 있어 사용자 세션 관리에 큰 편의를 제공합니다. 서버에서 반환한 쿠키 정보를 저장하기 위해 curl_setopt() 함수의 CURLOPT_COOKIEJAR 옵션을 사용할 수 있습니다. 🎜rrreee🎜다음 요청을 보낼 때, curl_setopt() 함수의 CURLOPT_COOKIEFILE 옵션을 사용하여 쿠키 정보가 저장되는 파일 경로를 지정하세요. 🎜rrreee🎜 4. 요약🎜🎜 이 글의 소개를 통해 독자들은 GET/POST 요청 보내기, HTTP 헤더 정보 설정, SSL/TLS 확인 및 쿠키 처리를 포함하여 CURL 확장의 기본 사용법을 처음으로 이해했다고 믿습니다. 더 나은 프로그램 네트워크 통신을 도와주세요. 다음으로, CURL 확장을 사용하여 실용적인 네트워크 애플리케이션을 개발하고, 계속해서 배우고, 프로그래밍 기술을 향상시킬 수 있습니다. 🎜

위 내용은 PHP 시작하기: CURL 확장의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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