>  기사  >  백엔드 개발  >  PHP에서 CURL을 사용하여 GET 및 POST 요청 구현

PHP에서 CURL을 사용하여 GET 및 POST 요청 구현

高洛峰
高洛峰원래의
2016-10-20 14:48:081245검색

1. CURL이란?

cURL은 URL 구문을 사용하여 파일과 데이터를 전송하는 도구입니다. HTTP, FTP, TELNET 등 다양한 프로토콜을 지원합니다. 가장 좋은 점은 PHP가 cURL 라이브러리도 지원한다는 것입니다. PHP의 cURL 라이브러리를 사용하면 웹페이지를 쉽고 효과적으로 스크랩할 수 있습니다. 스크립트를 실행하고 크롤링한 웹페이지를 분석하기만 하면 프로그래밍 방식으로 원하는 데이터를 얻을 수 있습니다. 링크에서 부분 데이터를 검색하거나, XML 파일을 가져와서 데이터베이스로 가져오거나, 단순히 웹 페이지의 콘텐츠를 검색하려는 경우에도 cURL은 강력한 PHP 라이브러리입니다.


2. CURL 함수 라이브러리.

컬_닫기 — 컬 세션 닫기

컬_복사_핸들 — 컬 연결 리소스의 모든 내용과 매개변수 복사

컬_errno — 현재 세션에 대한 오류 정보가 포함된 숫자 숫자 반환

컬_error — 현재 세션에 대한 오류 정보가 포함된 문자열을 반환합니다.

컬_exec — 컬 세션 실행

컬_getinfo — 컬 연결 리소스 핸들에 대한 정보 가져오기

cur_init — 컬 세션 초기화

cur_multi_add_handle — 컬 배치 세션에 별도의 컬 핸들 리소스 추가

컬_multi_close — 배치 핸들 리소스 닫기

컬_multi_exec — 컬 구문 분석 배치 핸들

컬_멀티_getcontent — 얻은 출력의 텍스트 스트림을 반환합니다.

컬_멀티_info_read — 현재 구문 분석된 컬의 관련 전송 정보를 가져옵니다.

컬_멀티_init — 컬 배치 핸들을 초기화합니다.

컬_멀티_remove_handle — 컬 배치 핸들 리소스에서 핸들 리소스 제거

컬_멀티_select — cURL 확장과 연결된 모든 소켓을 가져온 다음 "선택"할 수 있습니다.

컬_setopt_array — 배열 형식으로 컬에 대한 세션 매개변수 설정

컬_setopt — 컬에 대한 세션 매개변수 설정

컬_버전 — 컬 관련 버전 정보 가져오기

컬_init 함수 of ()는 컬 세션을 초기화합니다. 컬_init() 함수의 유일한 매개변수는 선택사항이며 URL 주소를 나타냅니다.

컬_exec() 함수는 컬 세션을 실행하는 것입니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.

컬 세션을 닫는 데는 컬_close() 함수가 사용됩니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.

3. PHP에서 CURL 요청을 설정하는 기본 단계

 ①: 초기화

 curl_init()

 ②: 속성 설정

컬_setopt(). URL 요청의 다양한 세부사항을 지정할 수 있는 설정할 수 있는 cURL 매개변수의 긴 목록이 있습니다.

 3: 실행하고 결과 얻기

 curl_exec()

 4: 핸들 해제

 curl_close()

IV. CURL 구현 GET 및 POST

①: GET 메소드가 구현됨

<?php
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 1);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //执行命令
    $data = curl_exec($curl);
    //关闭URL请求
    curl_close($curl);
    //显示获得的数据
    print_r($data);
?>

②: POST 메소드가 구현됨

 
<?php
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 1);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //设置post方式提交
    curl_setopt($curl, CURLOPT_POST, 1);
    //设置post数据
    $post_data = array(
        "username" => "coder",
        "password" => "12345"
        );
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    //执行命令
    $data = curl_exec($curl);
    //关闭URL请求
    curl_close($curl);
    //显示获得的数据
    print_r($data);
?>

3: 가져온 데이터가 json 형식인 경우 json_decode 함수를 사용하여 배열로 해석합니다.

 $output_array = json_decode($output,true);

 json_decode($output)를 이용해 파싱하면 객체형 데이터를 얻게 된다.

5. 직접 캡슐화한 함수

//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
 function curl_request($url,$post=&#39;&#39;,$cookie=&#39;&#39;, $returnCookie=0){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)&#39;);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
        if($post) {
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
        }
        if($cookie) {
            curl_setopt($curl, CURLOPT_COOKIE, $cookie);
        }
        curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($curl);
        if (curl_errno($curl)) {
            return curl_error($curl);
        }
        curl_close($curl);
        if($returnCookie){
            list($header, $body) = explode("\r\n\r\n", $data, 2);
            preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
            $info[&#39;cookie&#39;]  = substr($matches[1][0], 1);
            $info[&#39;content&#39;] = $body;
            return $info;
        }else{
            return $data;
        }
}


옵션 매개변수 설명 포함:

첫 번째 카테고리:

다음 옵션의 선택적 매개변수의 경우 값은 부울 유형 값으로 설정되어야 합니다.

옵션

예 값 선택

비고

CURLOPT_AUTOREFERER

위치:를 기준으로 리디렉션할 때 헤더의 Referer: 정보가 자동으로 설정됩니다.

CURLOPT_BINARYTRANSFER

CURLOPT_RETURNTRANSFER가 활성화된 경우 원시 출력을 반환합니다.

CURLOPT_COOKIESESSION

컬은 하나의 세션 쿠키만 전달하고 다른 쿠키는 무시합니다. 기본적으로 컬은 모든 쿠키를 서버에 반환합니다. 세션 쿠키는 서버 측 세션이 유효한지 확인하는 데 사용되는 쿠키를 말합니다.

CURLOPT_CRLF

활성화되면 Unix 줄 바꿈 문자를 캐리지 리턴 및 줄 바꿈 문자로 변환합니다.

CURLOPT_DNS_USE_GLOBAL_CACHE

활성화하면 전역 DNS 캐시가 활성화되며 이 항목은 스레드로부터 안전하며 기본적으로 활성화됩니다.

CURLOPT_FAILONERROR

HTTP 상태 코드를 표시합니다. 기본 동작은 400 이하의 숫자가 포함된 HTTP 메시지를 무시하는 것입니다.

CURLOPT_FILETIME

활성화되면 원격 문서의 정보를 수정하려고 시도합니다. 결과 정보는 curl_getinfo() 함수의 CURLINFO_FILETIME 옵션을 통해 반환됩니다. cur_getinfo().

CURLOPT_FOLLOWLOCATION

활성화되면 서버에서 반환된 "Location:"이 헤더에 배치되고 재귀적으로 서버에 반환됩니다. CURLOPT_MAXREDIRS를 사용하여 재귀 횟수를 제한하세요. 보고.

CURLOPT_FORBID_REUSE

상호작용 완료 후 강제로 연결을 해제하며 재사용할 수 없습니다.

CURLOPT_FRESH_CONNECT

캐시에 있는 연결을 대체하기 위해 새 연결을 강제합니다.

CURLOPT_FTP_USE_EPRT

활성화되면 FTP 다운로드 시 EPRT(또는 LPRT) 명령을 사용하세요. FALSE로 설정하면 PORT 명령만 사용하여 EPRT 및 LPRT가 비활성화됩니다. FALSE로 설정된 경우 EPSV 명령을 비활성화합니다.

CURLOPT_FTPAPPEND

활성화되면 파일을 덮어쓰는 대신 파일에 추가합니다.

 CURLOPT_FTPASCII

  CURLOPT_TRANSFERTEXT의 별칭.

CURLOPT_FTPLISTONLY

활성화되면 FTP 디렉터리의 이름만 나열됩니다.

CURLOPT_HEADER

활성화하면 헤더 파일 정보가 데이터 스트림으로 출력됩니다.

CURLINFO_HEADER_OUT

활성화된 경우 추적 핸들의 요청 문자열입니다.

PHP 5.1.3부터 ​​사용 가능합니다. CURLINFO_ 접두사는 의도적인 것입니다.

CURLOPT_HTTPGET

활성화되면 HTTP 메소드가 GET으로 설정됩니다. GET이 기본값이므로 수정될 때만 사용됩니다.

CURLOPT_HTTPPROXYTUNNEL

활성화되면 HTTP 프록시를 통해 전송됩니다.

CURLOPT_MUTE

활성화하면 cURL 함수에서 수정된 모든 매개변수가 기본값으로 복원됩니다.

CURLOPT_NETRC

연결이 설정된 후 ~/.netrc 파일에 접속하여 원격 사이트에 연결하기 위한 사용자 이름과 비밀번호 정보를 얻습니다.

CURLOPT_NOBODY

활성화하면 HTML의 BODY 부분이 출력되지 않습니다.

CURLOPT_NOPROGRESS

활성화 시 컬 전송 진행 표시줄을 끕니다. 이 항목의 기본 설정은 활성화입니다.

참고:

PHP는 자동으로 이 옵션을 TRUE로 설정합니다. 이 옵션은 디버깅 목적으로만 변경해야 합니다.

CURLOPT_NOSIGNAL

활성화되면 컬이 PHP에 전달하는 모든 신호를 무시합니다. 이 항목은 SAPI 멀티스레드 전송 중에 기본적으로 활성화됩니다.

cURL 7.10에 추가되었습니다.

CURLOPT_POST

활성화되면 양식 제출과 마찬가지로 일반 POST 요청이 전송됩니다(application/x-www-form-urlencoded 입력).

CURLOPT_PUT

활성화되면 HTTP는 CURLOPT_INFILE과 CURLOPT_INFILESIZE를 동시에 설정해야 합니다.

CURLOPT_RETURNTRANSFER

curl_exec()에서 얻은 정보를 직접 출력하는 대신 파일 스트림 형식으로 반환합니다.

CURLOPT_SSL_VERIFYPEER

비활성화되면 cURL이 서버에서 확인을 종료합니다. CURLOPT_CAINFO 옵션을 사용하여 인증서를 설정합니다. CURLOPT_CAPATH 옵션을 사용하여 인증서 디렉터리를 설정합니다. CURLOPT_SSL_VERIFYPEER(기본값 2)가 활성화된 경우 CURLOPT_SSL_VERIFYHOST를 TRUE로 설정해야 하며 그렇지 않으면 FALSE로 설정해야 합니다.

cURL 7.10부터 기본값은 TRUE입니다. cURL 7.10부터는 번들 설치가 기본으로 제공됩니다.

CURLOPT_TRANSFERTEXT

활성화되면 FTP 전송에 ASCII 모드를 사용합니다. LDAP의 경우 HTML이 아닌 일반 텍스트 정보를 검색합니다. Windows 시스템에서는 시스템이 STDOUT을 바이너리 모드로 설정하지 않습니다.

CURLOPT_UNRESTRICTED_AUTH

도메인 이름이 변경된 경우에도 CURLOPT_FOLLOWLOCATION을 사용하여 생성된 헤더의 여러 위치에 사용자 이름 및 비밀번호 정보를 지속적으로 추가합니다.

CURLOPT_UPLOAD

활성화하면 파일 업로드가 허용됩니다.

CURLOPT_VERBOSE

활성화되면 모든 정보가 STDERR 또는 지정된 CURLOPT_STDERR에 보고되고 저장됩니다.

두 번째 범주:


다음 옵션의 선택적 매개변수의 경우 값은 정수 유형 값으로 설정되어야 합니다.

옵션

선택값

비고

CURLOPT_BUFFERSIZE

매번 얻어오는 데이터에서 읽어오는 캐시의 크기이지만 이 값이 매번 보장되는 것은 아니다. 매번 채워지세요.

cURL 7.10에 추가되었습니다.

CURLOPT_CLOSEPOLICY

CURLCLOSEPOLICY_LEAST_RECENTLY_USED 또는 CURLCLOSEPOLICY_OLDEST, 다른 세 가지 CURLCLOSEPOLICY_가 있지만 cURL은 아직 이를 지원하지 않습니다.

CURLOPT_CONNECTTIMEOUT

연결을 시작하기 전 대기 시간을 0으로 설정하면 무한정 대기합니다.

CURLOPT_CONNECTTIMEOUT_MS

연결 시도를 기다리는 시간(밀리초)입니다. 0으로 설정하면 무한정 대기합니다.

cURL 7.16.2에 추가되었습니다. PHP 5.2.3부터 사용 가능합니다.

CURLOPT_DNS_CACHE_TIMEOUT

DNS 정보를 메모리에 저장하는 시간을 설정하며 기본값은 120초입니다.

CURLOPT_FTPSSLAUTH

FTP 인증 방법: CURLFTPAUTH_SSL(SSL 먼저 시도), CURLFTPAUTH_TLS(TLS 먼저 시도) 또는 CURLFTPAUTH_DEFAULT(cURL이 자동으로 결정).

cURL 7.12.2에 추가되었습니다. CURLOPT_HTTP_VERSION

CURLOPT_HTTPAUTH

선택적인 값은 CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY 및 CURLAUTH_ANYSAFE입니다.

| 비트필드(또는) 연산자를 사용하여 여러 값을 구분할 수 있으며, cURL을 사용하면 서버가 이를 가장 잘 지원하는 값을 선택할 수 있습니다.

CURLAUTH_ANY는 CURLAUTH_BASIC | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM과 동일합니다. 🎜> CURLOPT_INFILESIZE

업로드된 파일의 크기를 설정합니다. 단위는 바이트입니다.

CURLOPT_LOW_SPEED_LIMIT

전송 속도가 CURLOPT_LOW_SPEED_LIMIT(바이트/초) 미만인 경우 PHP는 너무 느리기 때문에 전송을 취소할지 여부를 결정하기 위해 CURLOPT_LOW_SPEED_TIME을 사용합니다.

CURLOPT_LOW_SPEED_TIME

전송 속도가 CURLOPT_LOW_SPEED_LIMIT(바이트/초) 미만인 경우 PHP는 CURLOPT_LOW_SPEED_TIME을 사용하여 전송 속도가 너무 느리기 때문에 전송을 취소할지 여부를 결정합니다.

CURLOPT_MAXCONNECTS

허용되는 최대 연결 수를 초과하는 경우 CURLOPT_CLOSEPOLICY를 사용하여 중지해야 하는 연결을 결정합니다.

CURLOPT_MAXREDIRS

최대 HTTP 리디렉션 수를 지정합니다. 이 옵션은 CURLOPT_FOLLOWLOCATION과 함께 사용됩니다.

CURLOPT_PORT

연결 포트를 지정하는 데 사용됩니다. (선택 사항)

CURLOPT_PROTOCOLS

CURLPROTO_*의 비트 필드입니다. 활성화되면 비트필드 값은 libcurl이 전송 중에 사용할 수 있는 프로토콜을 제한합니다. 이를 통해 많은 프로토콜을 지원하도록 libcurl을 컴파일할 수 있지만 사용이 허용된 프로토콜 중 일부만 사용할 수 있습니다. 기본적으로 libcurl은 지원하는 모든 프로토콜을 사용합니다. cURL 7.19에 CURLOPT_REDIR_PROTOCOLS._FILE, CURLPROTO_TFTP, CURLPROTO_ALL

도 추가되었습니다.

CURLOPT_PROXYAUTH

HTTP 프록시 연결 확인 방법입니다. CURLOPT_HTTPAUTH의 비트필드 플래그를 사용하여 해당 옵션을 설정합니다. 프록시 인증의 경우 현재 CURLAUTH_BASIC 및 CURLAUTH_NTLM만 지원됩니다.

cURL 7.10.7에 추가되었습니다.

CURLOPT_PROXYPORT

프록시 서버의 포트입니다. 포트는 CURLOPT_PROXY에서도 설정할 수 있습니다.

CURLOPT_PROXYTYPE

CURLPROXY_HTTP(기본값) 또는 CURLPROXY_SOCKS5입니다.

cURL 7.10에 추가되었습니다.

CURLOPT_REDIR_PROTOCOLS

CURLPROTO_*의 비트 필드 값입니다. 활성화된 경우 비트 필드 값은 CURLOPT_FOLLOWLOCATION이 활성화된 경우 리디렉션을 따를 때 전송 스레드가 사용할 수 있는 프로토콜을 제한합니다. 이렇게 하면 리디렉션 시 전송 스레드를 허용된 프로토콜의 하위 집합으로 제한할 수 있습니다. 기본적으로 libcurl은 FILE 및 SCP를 제외한 모든 프로토콜을 허용합니다. 이는 지원되는 모든 프로토콜을 무조건 따르는 7.19.4 시험판 버전과 약간 다릅니다. 프로토콜 상수는 CURLOPT_PROTOCOLS를 참조하세요.

cURL 7.19.4에 추가되었습니다.

CURLOPT_RESUME_FROM

전송을 재개할 때 바이트 오프셋을 전달합니다(재개된 전송에 사용됨).

CURLOPT_SSL_VERIFYHOST

1 서버 SSL 인증서에 공통 이름이 있는지 확인하세요. 번역자 주: 일반 이름은 일반적으로 SSL 인증서를 신청하려는 도메인 이름(도메인) 또는 하위 도메인(하위 도메인)을 입력하는 것을 의미합니다. 2 일반 이름이 존재하고 제공된 호스트 이름과 일치하는지 확인합니다.

CURLOPT_SSLVERSION

사용할 SSL 버전(2 또는 3)입니다. 기본적으로 PHP는 이 값을 자체적으로 감지하지만 경우에 따라 수동으로 설정해야 할 수도 있습니다.

CURLOPT_TIMEOUT

cURL 실행이 허용되는 최대 시간(초)을 설정합니다.

CURLOPT_TIMEOUT_MS

cURL 실행이 허용되는 최대 밀리초 수를 설정합니다.

cURL 7.16.2에 추가되었습니다. PHP 5.2.3부터 사용 가능합니다.

CURLOPT_TIMEVALUE

CURLOPT_TIMECONDITION에서 사용하는 타임스탬프를 설정합니다. 기본적으로 CURL_TIMECOND_IFMODSINCE가 사용됩니다.

세 번째 범주:

다음 옵션의 선택적 매개변수의 경우 값은 문자열 유형 값으로 설정되어야 합니다.

옵션

예 선택 value

비고

CURLOPT_CAINFO

서버 확인을 위한 하나 이상의 인증서를 보유하는 파일 이름입니다. 이 매개변수는 CURLOPT_SSL_VERIFYPEER와 함께 사용될 때만 의미가 있습니다. .

CURLOPT_CAPATH

여러 CA 인증서를 보유하는 디렉터리입니다. 이 옵션은 CURLOPT_SSL_VERIFYPEER와 함께 사용됩니다.

CURLOPT_COOKIE

HTTP 요청의 "Cookie:" 부분을 설정합니다. 여러 쿠키는 세미콜론과 공백으로 구분됩니다(예: "과일=사과; 색상=빨간색").

CURLOPT_COOKIEFILE

쿠키 ​​파일의 형식은 Netscape 형식일 수도 있고, 순수한 HTTP 헤더 정보만 파일에 저장할 수도 있습니다.

CURLOPT_COOKIEJAR

연결이 완료된 후 쿠키 정보를 저장하는 파일입니다.

CURLOPT_CUSTOMREQUEST

HTTP 요청으로 "GET" 또는 "HEAD" 대신 사용자 정의 요청 메시지를 사용합니다. 이는 "DELETE" 또는 기타 더 비밀스러운 HTTP 요청을 수행하는 데 유용합니다. 유효한 값은 "GET", "POST", "CONNECT" 등입니다. 즉, 여기에 전체 HTTP 요청을 입력하지 마세요. 예를 들어 "GET /index.html HTTP/1.0rnrn"을 입력하면 올바르지 않습니다.

참고:

서버가 지원하는지 확인할 때까지 이 사용자 정의 요청 방법을 사용하지 마십시오.

CURLOPT_EGDSOCKET

엔트로피 수집 데몬 소켓을 제외하고 CURLOPT_RANDOM_FILE과 유사합니다.

CURLOPT_ENCODING

HTTP 요청 헤더의 "Accept-Encoding:" 값. 지원되는 인코딩은 "identity", "deflate" 및 "gzip"입니다. 빈 문자열 ""인 경우 요청 헤더는 지원되는 모든 인코딩 유형을 보냅니다.

cURL 7.10에 추가되었습니다.

CURLOPT_FTPPORT

이 값은 FTP "POST" 명령에 필요한 IP 주소를 얻는 데 사용됩니다. "POST" 명령은 원격 서버에 우리가 지정한 IP 주소에 연결하도록 지시합니다. 이 문자열은 일반 텍스트 IP 주소, 호스트 이름, 네트워크 인터페이스 이름(UNIX의 경우)이거나 기본 IP 주소를 사용하는 '-'일 수 있습니다.

CURLOPT_INTERFACE

인터페이스 이름, IP 주소 또는 호스트 이름일 수 있는 네트워크 전송 인터페이스 이름입니다.

CURLOPT_KRB4LEVEL

KRB4(Kerberos 4) 보안 수준입니다. "clear", "safe", "confidential", "private" 값 중 하나가 유효합니다(낮은 것부터 높은 것 순). 문자열이 이들 중 어느 것과도 일치하지 않으면 "private"이 사용됩니다. 이 옵션을 NULL로 설정하면 KRB4 보안 인증이 비활성화됩니다. 현재 KRB4 보안 인증은 FTP 전송에만 사용할 수 있습니다.

CURLOPT_POSTFIELDS

모든 데이터는 HTTP 프로토콜의 "POST" 작업을 사용하여 전송됩니다. 파일을 보내려면 파일 이름 앞에 @를 붙이고 전체 경로를 사용하세요. 이 매개변수는 'para1=val1¶2=val2&...'와 같은 urlencoded 문자열을 통해 전달되거나 필드 이름을 키로, 필드 데이터를 값으로 사용하는 배열을 통해 전달될 수 있습니다. 값이 배열이면 Content-Type 헤더가 multipart/form-data로 설정됩니다.

CURLOPT_PROXY

HTTP 프록시 채널.

CURLOPT_PROXYUSERPWD

프록시에 연결하는 데 사용되는 "[사용자 이름]:[비밀번호]" 형식의 문자열입니다.

CURLOPT_RANDOM_FILE

SSL 난수 시드를 생성하는 데 사용되는 파일 이름입니다.

CURLOPT_RANGE

"X-Y" 형식입니다. 여기서 X와 Y는 데이터 범위(바이트)를 얻기 위한 선택 사항입니다. HTTP 전송 스레드는 "X-Y,N-M"과 같이 쉼표로 구분된 여러 중복 항목도 지원합니다.

CURLOPT_REFERER

HTTP 요청 헤더의 "Referer:" 내용.

CURLOPT_SSL_CIPHER_LIST

SSL 암호화 알고리즘 목록입니다. 예를 들어 RC4-SHA와 TLSv1은 모두 사용 가능한 암호화 목록입니다.

CURLOPT_SSLCERT

PEM 형식의 인증서가 포함된 파일 이름입니다.

CURLOPT_SSLCERTPASSWD

CURLOPT_SSLCERT 인증서를 사용하는 데 필요한 비밀번호입니다.

CURLOPT_SSLCERTTYPE

인증서 유형입니다. 지원되는 형식은 "PEM"(기본값), "DER" 및 "ENG"입니다.

cURL 7.9.3에 추가되었습니다.

CURLOPT_SSLENGINE

CURLOPT_SSLKEY에 지정된 SSL 개인 키에 사용되는 암호화 엔진 변수입니다.

CURLOPT_SSLENGINE_DEFAULT

비대칭 암호화 작업에 사용되는 변수입니다.

CURLOPT_SSLKEY

SSL 개인 키가 포함된 파일 이름입니다.

CURLOPT_SSLKEYPASSWD

CURLOPT_SSLKEY에 지정된 SSL 개인 키의 비밀번호입니다.

참고:

이 옵션에는 민감한 비밀번호 정보가 포함되어 있으므로 이 PHP 스크립트를 안전하게 보관하십시오.

CURLOPT_SSLKEYTYPE

CURLOPT_SSLKEY에 지정된 개인 키의 암호화 유형입니다. 지원되는 키 유형은 "PEM"(기본값), "DER" 및 "ENG"입니다.

CURLOPT_URL

얻을 URL 주소는 컬_init() 함수에서 설정할 수도 있습니다.

CURLOPT_USERAGENT

HTTP 요청에 "User-Agent:" 헤더 문자열이 포함되어 있습니다.

CURLOPT_USERPWD

연결에 필요한 사용자 이름과 비밀번호를 "[사용자 이름]:[비밀번호]" 형식으로 전달합니다.

카테고리 4

다음 옵션의 선택적 매개변수의 경우 값을 배열로 설정해야 합니다.

옵션

선택적 값

비고

CURLOPT_HTTP200ALIASES

200 응답 코드 배열, 배열의 응답은 올바른 응답으로 간주되고, 그렇지 않으면 오류로 간주됩니다.

cURL 7.10.3에 추가되었습니다.

CURLOPT_HTTPHEADER

HTTP 헤더 필드를 설정하는 데 사용되는 배열입니다. 다음 형식의 배열을 사용하여 설정합니다. array('Content-type: text/plain', 'Content-length: 100′)

CURLOPT_POSTQUOTE

FTP 요청이 완료된 후, 서버에서 실행되는 FTP 명령 집합입니다.

CURLOPT_QUOTE

FTP 요청 전에 서버에서 실행되는 FTP 명령 집합입니다.

다음 옵션의 선택적 매개변수의 경우 값은 스트림 리소스로 설정되어야 합니다(예: fopen() 사용).

옵션

선택적 값

CURLOPT_FILE

출력 파일의 위치를 ​​설정합니다. 값은 리소스 유형입니다. 기본값은 STDOUT(브라우저)입니다.

CURLOPT_INFILE

파일 업로드 시 읽어야 하는 파일 주소 값은 리소스 종류입니다.

CURLOPT_STDERR

오류 출력 주소를 설정합니다. 값은 리소스 유형이며 기본 STDERR을 대체합니다.

CURLOPT_WRITEHEADER

헤더 부분이 쓰여지는 파일 주소를 설정하며 값은 리소스 종류입니다.

다음 옵션의 선택적 매개변수의 경우 값은 콜백 함수 이름으로 설정되어야 합니다.

옵션

선택적 값

CURLOPT_HEADERFUNCTION

콜백 함수를 설정합니다. 이 함수에는 두 개의 매개변수가 있습니다. 첫 번째는 cURL 리소스 핸들이고 두 번째는 출력 헤더 데이터입니다. 헤더 데이터의 출력은 기록된 데이터의 크기를 반환하는 이 함수에 의존해야 합니다.

CURLOPT_PASSWDFUNCTION

세 개의 매개변수로 콜백 함수를 설정합니다. 첫 번째 매개변수는 cURL 리소스 핸들이고, 두 번째 매개변수는 비밀번호 프롬프트이며, 세 번째 매개변수는 허용되는 최대 비밀번호 길이입니다. 비밀번호 값을 반환합니다.

CURLOPT_PROGRESSFUNCTION

세 개의 매개변수로 콜백 함수를 설정합니다. 첫 번째는 cURL 리소스 핸들이고, 두 번째는 파일 설명자 리소스이고, 세 번째는 길이입니다. 포함된 데이터를 반환합니다.

CURLOPT_READFUNCTION

두 개의 매개변수를 갖는 콜백 함수입니다. 첫 번째 매개변수는 세션 핸들이고, 두 번째 매개변수는 HTTP 응답 헤더 정보의 문자열입니다. 이 기능을 사용하면 반환된 데이터가 직접 처리됩니다. 반환 값은 데이터 크기(바이트)입니다. 0을 반환하면 EOF 신호를 나타냅니다.

CURLOPT_WRITEFUNCTION

두 개의 매개변수를 갖는 콜백 함수입니다. 첫 번째 매개변수는 세션 핸들이고, 두 번째 매개변수는 HTTP 응답 헤더 정보의 문자열입니다. 이 콜백 함수를 사용하면 응답 헤더 정보가 자동으로 처리됩니다. 응답 헤더 정보는 전체 문자열입니다. 반환 값을 작성된 문자열의 정확한 길이로 설정하십시오. 오류가 발생하면 전송 스레드가 종료됩니다.


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