cURL curl_setopt
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
curl_setopt — cURL 전송 옵션 설정
설명
curl_setopt(CurlHandle $handle
, int $option
, mixed $value
): bool
주어진 cURL 세션 핸들에 대한 옵션을 설정합니다.
매개변수
handle
- curl_init()에서 반환된 cURL 핸들입니다.
option
- 설정할
CURLOPT_XXX
옵션입니다. value
option
에 설정할 값입니다.value
은option
매개변수의 다음 값에 대한 부울이어야 합니다.Option Set value
toNotes CURLOPT_AUTOREFERER
true
to automatically set theReferer:
field in requests where it follows aLocation:
redirect.CURLOPT_COOKIESESSION
이를 새 쿠키 "세션"으로 표시하려면 true
입니다. libcurl이 이전 세션의 "세션 쿠키"인 로드하려고 하는 모든 쿠키를 무시하도록 합니다. 기본적으로 libcurl은 세션 쿠키인지 여부에 관계없이 항상 모든 쿠키를 저장하고 로드합니다. 세션 쿠키는 만료 날짜가 없는 쿠키이며 이 "세션"에 대해서만 활성 상태로 존재합니다.CURLOPT_CERTINFO
보안 전송에서 SSL 인증 정보를 STDERR
로 출력하려면true
입니다.cURL 7.19.1에 추가되었습니다. 효과를 적용하려면 CURLOPT_VERBOSE
가 켜져 있어야 합니다.CURLOPT_CONNECT_ONLY
true
는 필요한 모든 프록시 인증 및 연결 설정을 수행하지만 데이터 전송은 수행하지 않도록 라이브러리에 지시합니다. 이 옵션은 HTTP, SMTP 및 POP3에 대해 구현됩니다.7.15.2에 추가되었습니다. CURLOPT_CRLF
전송 시 Unix 줄 바꿈을 CRLF 줄 바꿈으로 변환하려면 true
입니다.CURLOPT_DISALLOW_USERNAME_IN_URL
사용자 이름이 포함된 URL을 허용하지 않으려면 true
입니다. 사용자 이름은 기본적으로 허용됩니다(0).cURL 7.61.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_DNS_SHUFFLE_ADDRESSES
이름이 확인되고 둘 이상의 IP 주소가 반환될 때 임의의 순서로 사용되도록 반환된 모든 주소의 순서를 섞으려면 true
입니다. 이로 인해 IPv4가 IPv6보다 먼저 사용되거나 그 반대의 경우도 마찬가지입니다.cURL 7.60.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_HAPROXYPROTOCOL
연결 시작 시 HAProxy PROXY 프로토콜 v1 헤더를 보내려면 true
입니다. 기본 작업은 이 헤더를 보내지 않는 것입니다.cURL 7.60.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_SSH_COMPRESSION
기본 제공 SSH 압축을 활성화하려면 true
입니다. 이것은 명령이 아니라 요청입니다. 서버는 할 수도 있고 하지 않을 수도 있습니다.cURL 7.56.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_DNS_USE_GLOBAL_CACHE
전역 DNS 캐시를 사용하려면 true
입니다. 이 옵션은 스레드로부터 안전하지 않습니다. PHP가 스레드가 아닌 사용(CLI, FCGI, Apache2-Prefork 등)용으로 빌드된 경우 기본적으로 조건부로 활성화됩니다.CURLOPT_FAILONERROR
반환된 HTTP 코드가 400보다 크거나 같은 경우 장황하게 실패하려면 true
입니다. 기본 동작은 코드를 무시하고 페이지를 정상적으로 반환하는 것입니다.CURLOPT_SSL_FALSESTART
TLS false 시작을 활성화하려면 true
입니다.cURL 7.42.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_FILETIME
원격 문서의 수정 날짜를 검색하려면 true
입니다. 이 값은 curl_getinfo()와 함께CURLINFO_FILETIME
옵션을 사용하여 검색할 수 있습니다.CURLOPT_FOLLOWLOCATION
서버가 HTTP 헤더의 일부로 보내는 "Location: "
헤더 뒤에 오는 경우true
입니다.CURLOPT_MAXREDIRS
도 참조하십시오.CURLOPT_FORBID_REUSE
처리가 완료되면 연결을 명시적으로 닫고 재사용을 위해 풀링하지 않으려면 true
입니다.CURLOPT_FRESH_CONNECT
캐시된 연결 대신 새 연결을 강제로 사용하려면 true
입니다.CURLOPT_FTP_USE_EPRT
활성 FTP 다운로드를 수행할 때 EPRT(및 LPRT)를 사용하려면 true
입니다.false
를 사용하여 EPRT 및 LPRT를 비활성화하고 PORT만 사용합니다.CURLOPT_FTP_USE_EPSV
PASV로 되돌리기 전에 FTP 전송에 대해 EPSV 명령을 먼저 시도하려면 true
입니다. EPSV를 비활성화하려면false
로 설정합니다.CURLOPT_FTP_CREATE_MISSING_DIRS
FTP 작업이 현재 존재하지 않는 경로를 발견할 때 누락된 디렉터리를 만들려면 true
입니다.CURLOPT_FTPAPPEND
덮어쓰는 대신 원격 파일에 추가하려면 true
입니다.CURLOPT_TCP_NODELAY
네트워크의 작은 패킷 수를 최소화하려고 시도하는 TCP의 Nagle 알고리즘을 비활성화하려면 true
입니다.libcurl 7.11.2 이상으로 컴파일된 버전에서 사용할 수 있습니다. CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT
의 별칭입니다. 대신 사용하십시오.CURLOPT_FTPLISTONLY
FTP 디렉토리의 이름만 나열하려면 true
입니다.CURLOPT_HEADER
출력에 헤더를 포함하려면 true
입니다.CURLINFO_HEADER_OUT
핸들의 요청 문자열을 추적하려면 true
입니다.CURLINFO_
접두사는 의도적입니다.CURLOPT_HTTP09_ALLOWED
HTTP/0.9 응답을 허용할지 여부입니다. libcurl 7.66.0부터 기본값은 false
입니다. 이전에는true
로 기본 설정되었습니다.libcurl >= 7.64.0에 대해 빌드된 경우 각각 PHP 7.3.15 및 7.4.3부터 사용 가능 CURLOPT_HTTPGET
HTTP 요청 메서드를 GET으로 재설정하려면 true
입니다. GET이 기본값이므로 요청 메서드가 변경된 경우에만 필요합니다.CURLOPT_HTTPPROXYTUNNEL
지정된 HTTP 프록시를 통해 터널링하려면 true
입니다.CURLOPT_HTTP_CONTENT_DECODING
원시 HTTP 응답 본문을 가져오려면 false
입니다.libcurl >= 7.16.2에 대해 빌드된 경우 사용할 수 있습니다. CURLOPT_KEEP_SENDING_ON_ERROR
반환된 HTTP 코드가 300 이상인 경우 요청 본문을 계속 보내려면 true
입니다. 기본 작업은 보내기를 중지하고 스트림 또는 연결을 닫는 것입니다. 수동 NTLM 인증에 적합합니다. 대부분의 응용 프로그램에는 이 옵션이 필요하지 않습니다.libcurl >= 7.51.0에 대해 빌드된 경우 PHP 7.3.0부터 사용 가능합니다. CURLOPT_MUTE
cURL 함수와 관련하여 완전히 침묵하려면 true
입니다.cURL 7.15.5에서 제거됨(대신 CURLOPT_RETURNTRANSFER를 사용할 수 있음) CURLOPT_NETRC
~/.netrc 파일을 스캔하여 연결이 설정되는 원격 사이트의 사용자 이름과 암호를 찾으려면 true
입니다.CURLOPT_NOBODY
출력에서 본문을 제외하려면 true
입니다. 그런 다음 요청 메서드는 HEAD로 설정됩니다. 이것을false
로 변경해도 GET으로 변경되지 않습니다.CURLOPT_NOPROGRESS
cURL 전송에 대한 진행률 측정기를 비활성화하려면 true
입니다.메모: PHP는 이 옵션을 자동으로
true
로 설정합니다. 이것은 디버깅 목적으로만 변경되어야 합니다.CURLOPT_NOSIGNAL
PHP 프로세스에 신호를 보내도록 하는 모든 cURL 함수를 무시하려면 true
입니다. 다중 스레드 SAPI에서는 기본적으로 켜져 있으므로 시간 초과 옵션을 계속 사용할 수 있습니다.cURL 7.10에 추가되었습니다. CURLOPT_PATH_AS_IS
true
to not handle dot dot sequences.cURL 7.42.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_PIPEWAIT
파이프라이닝/다중화를 기다리려면 true
입니다.cURL 7.43.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_POST
일반 HTTP POST를 수행하려면 true
입니다. 이 POST는 HTML 양식에서 가장 일반적으로 사용되는 일반적인application/x-www-form-urlencoded
종류입니다.CURLOPT_PUT
HTTP PUT 파일에 대해 true
입니다. PUT할 파일은CURLOPT_INFILE
및CURLOPT_INFILESIZE
로 설정해야 합니다.CURLOPT_RETURNTRANSFER
전송을 직접 출력하는 대신 curl_exec()의 반환 값 문자열로 반환하려면 true
입니다.CURLOPT_SASL_IR
첫 번째 패킷에서 초기 응답을 보낼 수 있도록 하려면 true
입니다.cURL 7.31.10에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_SSL_ENABLE_ALPN
SSL 핸드셰이크에서 ALPN을 비활성화하려면 false
입니다(SSL 백엔드 libcurl이 이를 지원하도록 빌드된 경우). 이는 http2를 협상하는 데 사용할 수 있습니다.cURL 7.36.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_SSL_ENABLE_NPN
http2를 협상하는 데 사용할 수 있는 SSL 핸드셰이크(SSL 백엔드 libcurl이 지원하도록 빌드된 경우)에서 NPN을 비활성화하려면 false
입니다.cURL 7.36.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_SSL_VERIFYPEER
cURL이 피어의 인증서를 확인하지 못하도록 하려면 false
입니다. 확인할 대체 인증서는CURLOPT_CAINFO
옵션으로 지정하거나 인증서 디렉토리는CURLOPT_CAPATH
옵션으로 지정할 수 있습니다.cURL 7.10부터 기본적으로 true
입니다. cURL 7.10부터 기본 번들이 설치됩니다.CURLOPT_SSL_VERIFYSTATUS
인증서 상태를 확인하려면 true
입니다.cURL 7.41.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_PROXY_SSL_VERIFYPEER
cURL이 피어의 인증서를 확인하지 못하도록 하려면 false
입니다. 확인할 대체 인증서는CURLOPT_CAINFO
옵션으로 지정하거나 인증서 디렉토리는CURLOPT_CAPATH
옵션으로 지정할 수 있습니다. false로 설정하면 상관없이 피어 인증서 확인이 성공합니다.기본적으로 true
입니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다.CURLOPT_SAFE_UPLOAD
항상 true
,CURLOPT_POSTFIELDS
에서 파일을 업로드하기 위한@
접두사 지원을 비활성화합니다. 즉,@
로 시작하는 값은 필드로 안전하게 전달할 수 있습니다. 대신 CURLFile을 업로드에 사용할 수 있습니다.CURLOPT_SUPPRESS_CONNECT_HEADERS
CURLOPT_HTTPPROXYTUNNEL
이 사용되고 CONNECT 요청이 수행될 때 사용자 콜백 함수CURLOPT_HEADERFUNCTION
및CURLOPT_WRITEFUNCTION
에서 프록시 CONNECT 응답 헤더를 표시하지 않으려면true
입니다.cURL 7.54.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_TCP_FASTOPEN
TCP Fast Open을 활성화하려면 true
입니다.cURL 7.49.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_TFTP_NO_OPTIONS
TFTP 옵션 요청을 보내지 않으려면 true
입니다.cURL 7.48.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_TRANSFERTEXT
FTP 전송에 ASCII 모드를 사용하려면 true
입니다. LDAP의 경우 HTML 대신 일반 텍스트로 데이터를 검색합니다. Windows 시스템에서는STDOUT
을 바이너리 모드로 설정하지 않습니다.CURLOPT_UNRESTRICTED_AUTH
호스트 이름이 변경된 경우에도 ( CURLOPT_FOLLOWLOCATION
사용) 위치를 추적할 때 사용자 이름과 암호를 계속 보내려면true
입니다.CURLOPT_UPLOAD
업로드를 준비하려면 true
입니다.CURLOPT_VERBOSE
자세한 정보를 출력하려면 true
입니다.STDERR
또는CURLOPT_STDERR
을 사용하여 지정된 파일에 출력을 씁니다.value
은option
매개변수의 다음 값에 대해 int여야 합니다.Option Set value
toNotes CURLOPT_BUFFERSIZE
각 읽기에 사용할 버퍼의 크기입니다. 그러나 이 요청이 이행될 것이라는 보장은 없습니다. cURL 7.10에 추가되었습니다. CURLOPT_CONNECTTIMEOUT
연결을 시도하는 동안 대기하는 시간(초)입니다. 무기한 대기하려면 0을 사용합니다. CURLOPT_CONNECTTIMEOUT_MS
연결을 시도하는 동안 대기하는 시간(밀리초)입니다. 무기한 대기하려면 0을 사용합니다. libcurl이 표준 시스템 이름 확인자를 사용하도록 빌드된 경우 연결의 해당 부분은 허용되는 최소 시간 제한이 1초인 시간 제한에 대해 여전히 전체 초 확인을 사용합니다. cURL 7.16.2에 추가되었습니다. CURLOPT_DNS_CACHE_TIMEOUT
DNS 항목을 메모리에 보관하는 시간(초)입니다. 이 옵션은 기본적으로 120(2분)으로 설정됩니다. CURLOPT_EXPECT_100_TIMEOUT_MS
예상 시간 초과: 100-연속 응답(밀리초)입니다. 기본값은 1000밀리초입니다. cURL 7.36.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
행복한 눈알 알고리즘을 위한 ipv6의 시작입니다. Happy Eyeballs는 이중 스택 호스트에 대해 IPv4 및 IPv6 주소 모두에 연결을 시도하며 시간 초과 밀리초에 대해 IPv6을 먼저 선호합니다. 기본값은 현재 200밀리초인 CURL_HET_DEFAULT입니다. cURL 7.59.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_FTPSSLAUTH
FTP 인증 메서드(활성화된 경우): CURLFTPAUTH_SSL
(SSL을 먼저 시도),CURLFTPAUTH_TLS
(TLS를 먼저 시도) 또는CURLFTPAUTH_DEFAULT
(cURL이 결정하도록 함).cURL 7.12.2에 추가되었습니다. CURLOPT_HEADEROPT
헤더를 다루는 방법. 다음 상수 중 하나: CURLHEADER_UNIFIED
:CURLOPT_HTTPHEADER
에 지정된 헤더는 서버와 프록시 모두에 대한 요청에 사용됩니다. 이 옵션을 활성화하면CURLOPT_PROXYHEADER
는 아무런 효과가 없습니다.CURLHEADER_SEPARATE
:CURLOPT_HTTPHEADER
헤더가 프록시가 아닌 서버로만 전송되도록 합니다.프록시 헤더를 사용하려면
CURLOPT_PROXYHEADER
로 설정해야 합니다. 비 CONNECT 요청이 프록시로 전송되면 libcurl은 서버 헤더와 프록시 헤더를 모두 전송합니다. CONNECT를 수행할 때 libcurl은CURLOPT_PROXYHEADER
헤더를 프록시에만 보낸 다음CURLOPT_HTTPHEADER
헤더를 서버에만 보냅니다. cURL 7.42.1에서는 기본값이CURLHEADER_SEPARATE
이고 이전에는CURLHEADER_UNIFIED
입니다.cURL 7.37.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_HTTP_VERSION
CURL_HTTP_VERSION_NONE
(기본값, CURL이 사용할 버전 결정),CURL_HTTP_VERSION_1_0
(HTTP/1.0 강제),CURL_HTTP_VERSION_1_1
(HTTP/1.1 강제),CURL_HTTP_VERSION_2_0
(HTTP 2 시도),CURL_HTTP_VERSION_2
(CURL_HTTP_VERSION_2_0
별칭),CURL_HTTP_VERSION_2TLS
(attempts HTTP 2 over TLS (HTTPS) only) 또는CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
(HTTP/1.1 업그레이드 없이 HTTP/2를 사용하여 비 TLS HTTP 요청 실행).CURLOPT_HTTPAUTH
사용할 HTTP 인증 메서드입니다. 옵션은 CURLAUTH_BASIC
,CURLAUTH_DIGEST
,CURLAUTH_GSSNEGOTIATE
,CURLAUTH_NTLM
,CURLAUTH_ANY
및CURLAUTH_ANYSAFE
입니다.비트 | (또는) 연산자는 둘 이상의 메서드를 결합하는 데 사용할 수 있습니다. 이 작업이 완료되면 cURL은 서버를 폴링하여 지원하는 메서드를 확인하고 최상의 메서드를 선택합니다.
CURLAUTH_ANY
is an alias forCURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
.CURLAUTH_ANYSAFE
is an alias forCURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
.CURLOPT_INFILESIZE
원격 사이트에 파일을 업로드할 때 예상되는 파일 크기(바이트)입니다. CURLOPT_READFUNCTION
에 따라 정확히 무엇을 전송하는지에 따라 이 옵션을 사용해도 libcurl이 더 많은 데이터를 전송하는 것을 막을 수 없습니다.CURLOPT_LOW_SPEED_LIMIT
PHP가 전송이 너무 느리다고 간주하고 중단하기 전에 CURLOPT_LOW_SPEED_TIME
초 카운트 동안 전송 속도가 초당 바이트 수보다 낮아야 합니다.CURLOPT_LOW_SPEED_TIME
PHP가 전송이 너무 느리다고 판단하여 중단하기 전에 전송 속도가 CURLOPT_LOW_SPEED_LIMIT
미만이어야 하는 시간(초)입니다.CURLOPT_MAXCONNECTS
허용되는 최대 영구 연결 수입니다. 한계에 도달하면 CURLOPT_CLOSEPOLICY
를 사용하여 닫을 연결을 결정합니다.CURLOPT_MAXREDIRS
따라야 할 HTTP 리디렉션의 최대 양입니다. CURLOPT_FOLLOWLOCATION
과 함께 이 옵션을 사용하십시오. 무한 리디렉션을 방지하기 위해 기본값20
이 설정됩니다.-1
로 설정하면 무한 리디렉션을 허용하고0
으로 설정하면 모든 리디렉션을 거부합니다.CURLOPT_PORT
연결할 대체 포트 번호입니다. CURLOPT_POSTREDIR
CURLOPT_FOLLOWLOCATION
이 설정되고 특정 유형의 리디렉션이 발생할 때 HTTP POST 메서드를 유지해야 하는 경우 1(301 Moved Permanently), 2(302 Found) 및 4(303 See Other)의 비트 마스크입니다.cURL 7.19.1에 추가되었습니다. CURLOPT_PROTOCOLS
CURLPROTO_*
값의 비트마스크. 사용되는 경우 이 비트마스크는 libcurl이 전송에 사용할 수 있는 프로토콜을 제한합니다. 이를 통해 광범위한 프로토콜을 지원하도록 빌드된 libcurl을 가질 수 있지만 여전히 특정 전송을 제한하여 해당 프로토콜의 하위 집합만 사용할 수 있습니다. 기본적으로 libcurl은 지원하는 모든 프로토콜을 허용합니다.CURLOPT_REDIR_PROTOCOLS
도 참조하십시오.유효한 프로토콜 옵션:
CURLPROTO_HTTP
,CURLPROTO_HTTPS
,CURLPROTO_FTP
,CURLPROTO_FTPS
,CURLPROTO_SCP
,CURLPROTO_SFTP
,CURLPROTO_TELNET
,CURLPROTO_LDAP
,CURLPROTO_LDAPS
,CURLPROTO_DICT
,CURLPROTO_FILE
,CURLPROTO_TFTP
,CURLPROTO_ALL
cURL 7.19.4에 추가되었습니다. CURLOPT_PROXYAUTH
프록시 연결에 사용할 HTTP 인증 메서드입니다. CURLOPT_HTTPAUTH
에 설명된 것과 동일한 비트마스크를 사용하십시오. 프록시 인증의 경우 현재CURLAUTH_BASIC
및CURLAUTH_NTLM
만 지원됩니다.cURL 7.10.7에 추가되었습니다. CURLOPT_PROXYPORT
연결할 프록시의 포트 번호입니다. 이 포트 번호는 CURLOPT_PROXY
에서도 설정할 수 있습니다.CURLOPT_PROXYTYPE
CURLPROXY_HTTP
(기본값),CURLPROXY_SOCKS4
,CURLPROXY_SOCKS5
,CURLPROXY_SOCKS4A
또는CURLPROXY_SOCKS5_HOSTNAME
입니다.cURL 7.10에 추가되었습니다. CURLOPT_REDIR_PROTOCOLS
CURLPROTO_*
값의 비트마스크. 사용되는 경우 이 비트 마스크는CURLOPT_FOLLOWLOCATION
이 활성화된 경우 리디렉션에서 libcurl이 따라가는 전송에서 사용할 수 있는 프로토콜을 제한합니다. 이를 통해 리디렉션에서 프로토콜의 하위 집합만 사용할 수 있도록 특정 전송을 제한할 수 있습니다. 기본적으로 libcurl은 FILE 및 SCP를 제외한 모든 프로토콜을 허용합니다. 이것은 지원되는 모든 프로토콜을 무조건 따르는 7.19.4 이전 버전과 비교한 차이점입니다. 프로토콜 상수 값에 대해서는CURLOPT_PROTOCOLS
도 참조하십시오.cURL 7.19.4에 추가되었습니다. CURLOPT_RESUME_FROM
전송을 재개할 오프셋(바이트)입니다. CURLOPT_SOCKS5_AUTH
사용할 SOCKS5 인증 메서드입니다. 옵션은 CURLAUTH_BASIC
,CURLAUTH_GSSAPI
,CURLAUTH_NONE
입니다.비트
|
(또는) 연산자는 둘 이상의 메서드를 결합하는 데 사용할 수 있습니다. 이 작업이 완료되면 cURL은 서버를 폴링하여 지원하는 메서드를 확인하고 최상의 메서드를 선택합니다.CURLAUTH_BASIC
은 사용자 이름/비밀번호 인증을 허용합니다.CURLAUTH_GSSAPI
는 GSS-API 인증을 허용합니다.CURLAUTH_NONE
은 인증을 허용하지 않습니다.기본값은
CURLAUTH_BASIC|CURLAUTH_GSSAPI
입니다.CURLOPT_PROXYUSERPWD
옵션으로 실제 사용자 이름과 암호를 설정하십시오.7.3.0 및 curl >= 7.55.0부터 사용 가능합니다. CURLOPT_SSL_OPTIONS
다음 상수의 비트마스크인 SSL 동작 옵션을 설정하십시오. CURLSSLOPT_ALLOW_BEAST
: SSL3 및 TLS1.0 프로토콜의 보안 결함에 대한 해결 방법을 사용하지 마십시오.CURLSSLOPT_NO_REVOKE
: 이러한 동작이 있는 SSL 백엔드에 대한 인증서 해지 확인을 비활성화합니다.cURL 7.25.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_SSL_VERIFYHOST
2
SSL 피어 인증서의 일반 이름 필드 또는 주체 대체 이름 필드가 제공된 호스트 이름과 일치하는지 확인합니다.0
은 이름을 확인하지 않습니다.1
을 사용해서는 안됩니다. 프로덕션 환경에서 이 옵션의 값은2
(기본값)로 유지되어야 합니다.cURL 7.28.1에서 값 1
에 대한 지원이 제거되었습니다.CURLOPT_SSLVERSION
CURL_SSLVERSION_DEFAULT
(0),CURL_SSLVERSION_TLSv1
(1),CURL_SSLVERSION_SSLv2
(2),CURL_SSLVERSION_SSLv3
(3),CURL_SSLVERSION_TLSv1_0
(4),CURL_SSLVERSION_TLSv1_1
(5) 또는CURL_SSLVERSION_TLSv1_2
(6)중의 하나. 최대 TLS 버전은CURL_SSLVERSION_MAX_*
상수 중 하나를 사용하여 설정할 수 있습니다.CURL_SSLVERSION_*
상수 중 하나를CURL_SSLVERSION_MAX_*
상수 중 하나와 OR하는 것도 가능합니다.CURL_SSLVERSION_MAX_DEFAULT
(라이브러리에서 지원하는 최대 버전),CURL_SSLVERSION_MAX_TLSv1_0
,CURL_SSLVERSION_MAX_TLSv1_1
,CURL_SSLVERSION_MAX_TLSv1_2
또는CURL_SSLVERSION_MAX_TLSv1_3
.메모: 가장 좋은 방법은 이것을 설정하지 않고 기본값을 사용하는 것입니다. SSLv2 및 SSLv3의 알려진 취약점을 감안할 때 2 또는 3으로 설정하는 것은 매우 위험합니다.
CURLOPT_PROXY_SSL_OPTIONS
다음 상수의 비트마스크인 프록시 SSL 동작 옵션을 설정합니다. CURLSSLOPT_ALLOW_BEAST
: SSL3 및 TLS1.0 프로토콜의 보안 결함에 대한 해결 방법을 사용하지 마십시오.CURLSSLOPT_NO_REVOKE
: 이러한 동작이 있는 SSL 백엔드에 대한 인증서 해지 확인을 비활성화합니다. (curl >= 7.44.0)CURLSSLOPT_NO_PARTIALCHAIN
: "partial" 인증서 체인을 허용하지 않습니다. 그렇지 않으면 기본적으로 허용됩니다. (curl >= 7.68.0)PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_SSL_VERIFYHOST
HTTPS 프록시의 인증서 이름 필드에서 프록시 이름에 대해 확인하려면 2
로 설정합니다.0
으로 설정하면 인증서에 사용된 이름에 관계없이 연결이 성공합니다. 주의해서 그 능력을 사용하십시오!1
은 curl 7.28.0 및 이전 버전에서 디버그 옵션으로 처리되었습니다. curl 7.28.1에서 7.65.3까지CURLE_BAD_FUNCTION_ARGUMENT
가 반환됩니다. curl 7.66.0부터1
과2
는 동일한 값으로 처리됩니다. 프로덕션 환경에서 이 옵션의 값은2
(기본값)로 유지되어야 합니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_SSLVERSION
CURL_SSLVERSION_DEFAULT
,CURL_SSLVERSION_TLSv1
,CURL_SSLVERSION_TLSv1_0
,CURL_SSLVERSION_TLSv1_1
,CURL_SSLVERSION_TLSv1_2
,CURL_SSLVERSION_TLSv1_3
,CURL_SSLVERSION_MAX_DEFAULT
,CURL_SSLVERSION_MAX_TLSv1_0
,CURL_SSLVERSION_MAX_TLSv1_1
,CURL_SSLVERSION_MAX_TLSv1_2
,CURL_SSLVERSION_MAX_TLSv1_3
또는CURL_SSLVERSION_SSLv3
중의 하나.메모: 가장 좋은 방법은 이것을 설정하지 않고 원격 SSL 프로토콜 버전을 파악하려고 시도하는 기본
CURL_SSLVERSION_DEFAULT
를 사용하도록 하는 것입니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_STREAM_WEIGHT
숫자 스트림 가중치를 설정합니다(1에서 256 사이의 숫자). cURL 7.46.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_TCP_KEEPALIVE
1
로 설정하면 TCP 연결 유지 프로브가 전송됩니다. 이러한 프로브의 지연 및 빈도는 운영 체제에서 지원하는 경우CURLOPT_TCP_KEEPIDLE
및CURLOPT_TCP_KEEPINTVL
옵션으로 제어할 수 있습니다.0
(기본값)으로 설정하면 연결 유지 프로브가 비활성화됩니다.cURL 7.25.0에 추가되었습니다. CURLOPT_TCP_KEEPIDLE
CURLOPT_TCP_KEEPALIVE
가 활성화된 경우 연결 유지 프로브를 보내기 전에 운영 체제가 연결이 유휴 상태일 때 대기하는 지연을 초 단위로 설정합니다. 모든 운영 체제가 이 옵션을 지원하는 것은 아닙니다. 기본값은60
입니다.cURL 7.25.0에 추가되었습니다. CURLOPT_TCP_KEEPINTVL
CURLOPT_TCP_KEEPALIVE
가 활성화된 경우 운영 체제가 keepalive 프로브를 보내는 사이에 대기하는 간격(초)을 설정합니다. 모든 운영 체제가 이 옵션을 지원하는 것은 아닙니다. 기본값은60
입니다.cURL 7.25.0에 추가되었습니다. CURLOPT_TIMECONDITION
CURLOPT_TIMEVALUE
가 처리되는 방식입니다.CURLOPT_TIMEVALUE
에 지정된 시간 이후에 수정된 경우에만 페이지를 반환하려면CURL_TIMECOND_IFMODSINCE
를 사용하십시오. 수정되지 않은 경우CURLOPT_HEADER
가true
라고 가정하면"304 Not Modified"
헤더가 반환됩니다. 반대 효과를 위해CURL_TIMECOND_IFUNMODSINCE
를 사용하십시오.CURL_TIMECOND_NONE
을 사용하여CURLOPT_TIMEVALUE
를 무시하고 항상 페이지를 반환합니다.CURL_TIMECOND_NONE
이 기본값입니다.cURL 7.46.0 이전에는 기본값이 CURL_TIMECOND_IFMODSINCE
였습니다.CURLOPT_TIMEOUT
cURL 함수를 실행할 수 있는 최대 시간(초)입니다. CURLOPT_TIMEOUT_MS
cURL 함수를 실행할 수 있는 최대 시간(밀리초)입니다. libcurl이 표준 시스템 이름 확인자를 사용하도록 빌드된 경우 연결의 해당 부분은 허용되는 최소 시간 제한이 1초인 시간 제한에 대해 여전히 전체 초 확인을 사용합니다. cURL 7.16.2에 추가되었습니다. CURLOPT_TIMEVALUE
1970년 1월 1일 이후의 시간(초)입니다. 시간은 CURLOPT_TIMECONDITION
에서 사용됩니다.CURLOPT_TIMEVALUE_LARGE
1970년 1월 1일 이후의 시간(초)입니다. 시간은 CURLOPT_TIMECONDITION
에서 사용됩니다. 기본값은 0입니다. 이 옵션과CURLOPT_TIMEVALUE
의 차이점은 인수 유형입니다. 'long'이 32비트 너비인 시스템에서 이 옵션은 2038년 이후의 날짜를 설정하는 데 사용해야 합니다.cURL 7.59.0에 추가되었습니다. PHP 7.3.0부터 사용 가능합니다. CURLOPT_MAX_RECV_SPEED_LARGE
다운로드가 전송 중 누적 평균에서 이 속도(초당 바이트로 계산)를 초과하면 평균 속도를 매개변수 값 이하로 유지하기 위해 전송이 일시 중지됩니다. 무제한 속도가 기본값입니다. cURL 7.15.5에 추가되었습니다. CURLOPT_MAX_SEND_SPEED_LARGE
업로드가 전송 중 누적 평균에서 이 속도(초당 바이트로 계산)를 초과하면 평균 속도를 매개변수 값 이하로 유지하기 위해 전송이 일시 중지됩니다. 무제한 속도가 기본값입니다. cURL 7.15.5에 추가되었습니다. CURLOPT_SSH_AUTH_TYPES
CURLSSH_AUTH_PUBLICKEY
,CURLSSH_AUTH_PASSWORD
,CURLSSH_AUTH_HOST
,CURLSSH_AUTH_KEYBOARD
중 하나 이상으로 구성된 비트 마스크입니다. libcurl이 하나를 선택하도록 하려면CURLSSH_AUTH_ANY
로 설정하십시오.cURL 7.16.1에 추가되었습니다. CURLOPT_IPRESOLVE
애플리케이션이 호스트 이름을 확인할 때 사용할 IP 주소의 종류를 선택할 수 있도록 합니다. 이것은 둘 이상의 IP 버전을 사용하여 주소를 확인하는 호스트 이름을 사용할 때만 흥미롭습니다. 가능한 값은 기본적으로 CURL_IPRESOLVE_WHATEVER
,CURL_IPRESOLVE_WHATEVER
,CURL_IPRESOLVE_V4
,CURL_IPRESOLVE_V6
입니다.cURL 7.10.8에 추가되었습니다. CURLOPT_FTP_FILEMETHOD
FTP(S) 서버의 파일에 도달하는 데 사용할 메서드를 curl에 알려줍니다. 가능한 값은 CURLFTPMETHOD_MULTICWD
,CURLFTPMETHOD_NOCWD
및CURLFTPMETHOD_SINGLECWD
입니다.cURL 7.15.1에 추가되었습니다. value
은option
매개변수의 다음 값에 대한 문자열이어야 합니다.Option Set value
toNotes CURLOPT_ABSTRACT_UNIX_SOCKET
호스트에 대한 TCP 연결을 설정하는 대신 추상 Unix 도메인 소켓을 사용하도록 설정하고 경로를 지정된 문자열로 설정합니다. 이 옵션은 CURLOPT_UNIX_SOCKET_PATH
와 동일한 의미를 공유합니다. 이 두 옵션은 동일한 저장소를 공유하므로 핸들당 하나만 설정할 수 있습니다.PHP 7.3.0 및 cURL 7.53.0부터 사용 가능 CURLOPT_CAINFO
피어를 확인할 하나 이상의 인증서가 있는 파일의 이름입니다. 이는 CURLOPT_SSL_VERIFYPEER
와 함께 사용할 때만 의미가 있습니다.절대 경로가 필요할 수 있습니다. CURLOPT_CAPATH
여러 CA 인증서를 보유하는 디렉토리입니다. CURLOPT_SSL_VERIFYPEER
와 함께 이 옵션을 사용하십시오.CURLOPT_COOKIE
HTTP 요청에 사용할 "Cookie: "
헤더의 내용입니다. 여러 쿠키는 세미콜론과 공백으로 구분됩니다(예: "fruit=apple; colour=red
").CURLOPT_COOKIEFILE
쿠키 데이터가 포함된 파일의 이름입니다. 쿠키 파일은 Netscape 형식이거나 파일에 덤프된 일반 HTTP 스타일 헤더일 수 있습니다. 이름이 빈 문자열이면 쿠키가 로드되지 않지만 쿠키 처리는 계속 활성화됩니다. CURLOPT_COOKIEJAR
핸들이 닫힐 때 모든 내부 쿠키를 저장할 파일 이름, 예: curl_close 호출 후. CURLOPT_COOKIELIST
쿠키 문자열(예: Netscape/Mozilla 형식의 한 줄 또는 일반 HTTP 스타일 Set-Cookie 헤더)은 해당 단일 쿠키를 내부 쿠키 저장소에 추가합니다. "ALL"
은 메모리에 저장된 모든 쿠키를 삭제합니다."SESS"
는 메모리에 저장된 모든 세션 쿠키를 지웁니다."FLUSH"
는CURLOPT_COOKIEJAR
에 의해 지정된 파일에 알려진 모든 쿠키를 씁니다."RELOAD"
는CURLOPT_COOKIEFILE
에 의해 지정된 파일에서 모든 쿠키를 로드합니다.cURL 7.14.1부터 사용 가능합니다. CURLOPT_CUSTOMREQUEST
HTTP 요청을 수행할 때 "GET"
또는"HEAD"
대신 사용할 사용자 지정 요청 메서드입니다. 이는"DELETE"
또는 기타 모호한 HTTP 요청을 수행하는 데 유용합니다. 유효한 값은"GET"
,"POST"
,"CONNECT"
등과 같은 것입니다. 즉, 여기에 전체 HTTP 요청 줄을 입력하지 마십시오. 예를 들어"GET /index.html HTTP/1.0\r\n\r\n"
을 입력하는 것은 올바르지 않습니다.메모: 서버가 사용자 정의 요청 메서드를 먼저 지원하는지 확인하지 않고 이 작업을 수행하지 마십시오.
CURLOPT_DEFAULT_PROTOCOL
URL에 체계 이름이 누락된 경우 사용할 기본 프로토콜입니다. cURL 7.45.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_DNS_INTERFACE
DNS 확인자가 바인딩해야 하는 네트워크 인터페이스의 이름을 설정합니다. 주소가 아닌 인터페이스 이름이어야 합니다. cURL 7.33.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_DNS_LOCAL_IP4
해석기가 바인딩해야 하는 로컬 IPv4 주소를 설정합니다. 인수는 단일 숫자 IPv4 주소를 문자열로 포함해야 합니다. cURL 7.33.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_DNS_LOCAL_IP6
해석기가 바인딩해야 하는 로컬 IPv6 주소를 설정합니다. 인수는 단일 숫자 IPv6 주소를 문자열로 포함해야 합니다. cURL 7.33.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_EGDSOCKET
Entropy Gathering Daemon 소켓에 대한 파일 이름을 제외하고 CURLOPT_RANDOM_FILE
과 같습니다.CURLOPT_ENCODING
"Accept-Encoding: "
헤더의 내용입니다. 이렇게 하면 응답을 디코딩할 수 있습니다. 지원되는 인코딩은"identity"
,"deflate"
및"gzip"
입니다. 빈 문자열""
이 설정되면 지원되는 모든 인코딩 유형이 포함된 헤더가 전송됩니다.cURL 7.10에 추가되었습니다. CURLOPT_FTPPORT
FTP "PORT" 명령에 사용할 IP 주소를 가져오는 데 사용되는 값입니다. "PORT" 명령은 원격 서버에 지정된 IP 주소에 연결하도록 지시합니다. 문자열은 일반 IP 주소, 호스트 이름, 네트워크 인터페이스 이름(Unix에서) 또는 시스템 기본 IP 주소를 사용하는 일반 '-'일 수 있습니다. CURLOPT_INTERFACE
사용할 발신 네트워크 인터페이스의 이름입니다. 인터페이스 이름, IP 주소 또는 호스트 이름이 될 수 있습니다. CURLOPT_KEYPASSWD
CURLOPT_SSLKEY
또는CURLOPT_SSH_PRIVATE_KEYFILE
개인 키를 사용하는 데 필요한 암호입니다.cURL 7.16.1에 추가되었습니다. CURLOPT_KRB4LEVEL
KRB4(Kerberos 4) 보안 수준입니다. "clear"
,"safe"
,"confidential"
,"private".
값 중 하나가 유효합니다. 문자열이 이 중 하나와 일치하지 않으면"private"
가 사용됩니다. 이 옵션을null
로 설정하면 KRB4 보안이 비활성화됩니다. 현재 KRB4 보안은 FTP 트랜잭션에서만 작동합니다.CURLOPT_LOGIN_OPTIONS
"AUTH=NTLM" 또는 "AUTH=*"를 통한 기본 인증 메커니즘과 같은 프로토콜별 로그인 옵션을 설정하는 데 사용할 수 있으며 CURLOPT_USERNAME
옵션과 함께 사용해야 합니다.cURL 7.34.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_PINNEDPUBLICKEY
고정된 공개 키를 설정합니다. 문자열은 고정된 공개 키의 파일 이름일 수 있습니다. 예상되는 파일 형식은 "PEM" 또는 "DER"입니다. 문자열은 "sha256//"이 앞에 있고 ";"으로 구분된 base64로 인코딩된 sha256 해시의 개수에 제한이 없습니다. cURL 7.39.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_POSTFIELDS
HTTP "POST" 작업에서 게시할 전체 데이터입니다. 이 매개변수는 ' para1=val1¶2=val2&...
'와 같은 urlencoded 문자열로 전달되거나 필드 이름이 키이고 필드 데이터가 값인 배열로 전달할 수 있습니다.value
이 배열인 경우Content-Type
헤더는multipart/form-data
로 설정됩니다. 파일은 CURLFile 또는 CURLStringFile을 사용하여 보낼 수 있으며, 이 경우value
은 배열이어야 합니다.CURLOPT_PRIVATE
이 cURL 핸들과 연결되어야 하는 모든 데이터입니다. 이 데이터는 이후에 curl_getinfo()의 CURLINFO_PRIVATE
옵션으로 검색할 수 있습니다. cURL은 이 데이터로 아무 작업도 수행하지 않습니다. cURL 다중 핸들을 사용할 때 이 개인 데이터는 일반적으로 표준 cURL 핸들을 식별하는 고유 키입니다.cURL 7.10.3에 추가되었습니다. CURLOPT_PRE_PROXY
향후 요청에 대해 CURLOPT_PROXY
옵션에 지정된 HTTP(S) 프록시에 연결하기 전에 curl이 연결하는 프리프록시로 사용할 호스트 이름 또는 점으로 구분된 숫자 IP 주소를 포함하는 문자열을 설정합니다. preproxy는 SOCKS 프록시만 될 수 있으며 사용되는 양말 종류를 지정하려면[scheme]://
접두사를 사용해야 합니다. 숫자 IPv6 주소는 [괄호] 안에 작성해야 합니다. preproxy를 빈 문자열로 설정하면 preproxy의 사용이 명시적으로 비활성화됩니다. 이 문자열에 포트 번호를 지정하려면 호스트 이름 끝에:[port]
를 추가합니다. 프록시의 포트 번호는 선택적으로 별도의 옵션CURLOPT_PROXYPORT
로 지정할 수 있습니다. 포트가 지정되지 않은 경우 기본적으로 프록시에 포트 1080을 사용합니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY
요청을 터널링할 HTTP 프록시입니다. CURLOPT_PROXY_SERVICE_NAME
프록시 인증 서비스 이름입니다. HTTP 프록시의 경우 cURL 7.43.0에, SOCKS5 프록시의 경우 cURL 7.49.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_PROXY_CAINFO
프록시 CA(인증 기관) 번들에 대한 경로입니다. 경로를 HTTPS 프록시를 확인할 하나 이상의 인증서가 포함된 파일의 이름을 지정하는 문자열로 설정합니다. 이 옵션은 HTTPS 서버가 아닌 HTTPS 프록시에 연결하기 위한 것입니다. 기본값은 libcurl의 cacert 번들이 저장된 것으로 가정되는 시스템 경로로 설정됩니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_CAPATH
HTTPS 프록시를 확인하는 데 사용할 여러 CA 인증서가 있는 디렉터리입니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_CRLFILE
SSL 교환 중에 발생하는 인증서 유효성 검사에 사용할 PEM 형식의 CRL(Certificate Revocation List)을 연결한 파일 이름을 설정합니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_KEYPASSWD
CURLOPT_PROXY_SSLKEY
개인 키를 사용하는 데 필요한 암호로 사용할 문자열을 설정합니다. 인증서를 로드하는 데 암호가 필요하지 않았지만 개인 키를 로드하려면 암호가 필요합니다. 이 옵션은 HTTPS 서버가 아닌 HTTPS 프록시에 연결하기 위한 것입니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_PINNEDPUBLICKEY
HTTPS 프록시에 대해 고정된 공개 키를 설정합니다. 문자열은 고정된 공개 키의 파일 이름일 수 있습니다. 예상되는 파일 형식은 "PEM" 또는 "DER"입니다. 문자열은 "sha256//"이 앞에 있고 ";"로 구분된 base64로 인코딩된 sha256 해시의 개수에 제한이 없습니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_SSLCERT
HTTPS 프록시에 연결하는 데 사용되는 클라이언트 인증서의 파일 이름입니다. 기본 형식은 보안 전송의 경우 "P12"이고 다른 엔진의 경우 "PEM"이며 CURLOPT_PROXY_SSLCERTTYPE
을 사용하여 변경할 수 있습니다. NSS 또는 보안 전송을 사용하면 보안 데이터베이스에 이름이 지정된 대로 인증하려는 인증서의 별명이 될 수도 있습니다. 현재 디렉토리의 파일을 사용하고 싶다면 닉네임과 혼동을 피하기 위해 "./" 접두사를 앞에 붙이십시오.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_SSLCERTTYPE
HTTPS 프록시에 연결할 때 사용되는 클라이언트 인증서 형식입니다. 지원되는 형식은 보안 전송을 제외하고 "PEM" 및 "DER"입니다. OpenSSL(버전 0.9.3 이상) 및 보안 전송(iOS 5 이상 또는 OS X 10.7 이상)도 PKCS#12로 인코딩된 파일에 대해 "P12"를 지원합니다. 기본값은 "PEM"입니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_SSL_CIPHER_LIST
HTTPS 프록시 연결에 사용할 암호 목록입니다. 목록은 구문적으로 정확해야 하며 콜론으로 구분된 하나 이상의 암호 문자열로 구성됩니다. 쉼표나 공백도 허용되는 구분 기호이지만 일반적으로 콜론이 사용되며 !, - 및 +를 연산자로 사용할 수 있습니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_TLS13_CIPHERS
프록시에 대한 TLS 1.3 연결에 사용할 암호 모음 목록입니다. 목록은 구문상 정확해야 하며 콜론으로 구분된 하나 이상의 암호 모음 문자열로 구성됩니다. 이 옵션은 현재 curl이 OpenSSL 1.1.1 이상을 사용하도록 빌드된 경우에만 사용됩니다. 다른 SSL 백엔드를 사용하는 경우 CURLOPT_PROXY_SSL_CIPHER_LIST
옵션을 사용하여 TLS 1.3 암호 제품군을 설정할 수 있습니다.PHP 7.3.0 및 libcurl >= cURL 7.61.0부터 사용 가능합니다. OpenSSL >= 1.1.1로 빌드할 때 사용 가능합니다. CURLOPT_PROXY_SSLKEY
HTTPS 프록시에 연결하는 데 사용되는 개인 키의 파일 이름입니다. 기본 형식은 "PEM"이며 CURLOPT_PROXY_SSLKEYTYPE
으로 변경할 수 있습니다. (iOS 및 Mac OS X만 해당) 보안 전송에 대해 curl이 빌드된 경우 이 옵션은 무시됩니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. 빌드된 TLS가 활성화된 경우 사용할 수 있습니다. CURLOPT_PROXY_SSLKEYTYPE
개인 키의 형식입니다. 지원되는 형식은 "PEM", "DER" 및 "ENG"입니다. PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_TLSAUTH_PASSWORD
CURLOPT_PROXY_TLSAUTH_TYPE
옵션으로 지정된 TLS 인증 메서드에 사용할 비밀번호입니다.CURLOPT_PROXY_TLSAUTH_USERNAME
옵션도 설정해야 합니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_TLSAUTH_TYPE
HTTPS 연결에 사용되는 TLS 인증 메서드입니다. 지원되는 메서드는 "SRP"입니다. 메모: TLS용 SRP(Secure Remote Password) 인증은 양쪽에 공유 암호가 있는 경우 상호 인증을 제공합니다. TLS-SRP를 사용하려면
CURLOPT_PROXY_TLSAUTH_USERNAME
및CURLOPT_PROXY_TLSAUTH_PASSWORD
옵션도 설정해야 합니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXY_TLSAUTH_USERNAME
CURLOPT_PROXY_TLSAUTH_TYPE
옵션으로 지정된 HTTPS 프록시 TLS 인증 메서드에 사용할 사용자 이름입니다.CURLOPT_PROXY_TLSAUTH_PASSWORD
옵션도 설정해야 합니다.PHP 7.3.0 및 libcurl >= cURL 7.52.0부터 사용 가능합니다. CURLOPT_PROXYUSERPWD
프록시 연결에 사용할 "[username]:[password]"
형식의 사용자 이름과 암호.CURLOPT_RANDOM_FILE
SSL용 난수 생성기를 시드하는 데 사용할 파일 이름입니다. CURLOPT_RANGE
"X-Y"
형식으로 검색할 데이터 범위입니다. 여기서 X 또는 Y는 선택 사항입니다. HTTP 전송은"X-Y,N-M"
형식의 쉼표로 구분된 여러 간격도 지원합니다.CURLOPT_REFERER
HTTP 요청에서 사용할 "Referer: "
헤더의 내용입니다.CURLOPT_SERVICE_NAME
인증 서비스 이름입니다. cURL 7.43.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
32개의 16진수를 포함하는 문자열입니다. 문자열은 원격 호스트 공개 키의 MD5 체크섬이어야 하며 libcurl은 md5sums가 일치하지 않는 한 호스트 연결을 거부합니다. 이 옵션은 SCP 및 SFTP 전송에만 적용됩니다. cURL 7.17.1에 추가되었습니다. CURLOPT_SSH_PUBLIC_KEYFILE
공개 키의 파일 이름입니다. 사용하지 않을 경우 libcurl은 기본적으로 HOME 환경 변수가 설정되어 있으면 $HOME/.ssh/id_dsa.pub로 설정되고, HOME이 설정되어 있지 않으면 현재 디렉터리에 "id_dsa.pub"만 지정됩니다. cURL 7.16.1에 추가되었습니다. CURLOPT_SSH_PRIVATE_KEYFILE
개인 키의 파일 이름입니다. 사용하지 않으면 libcurl은 기본적으로 HOME 환경 변수가 설정되어 있으면 $HOME/.ssh/id_dsa로 설정되고, HOME이 설정되어 있지 않으면 현재 디렉터리에 "id_dsa"만 지정됩니다. 파일이 암호로 보호되어 있으면 CURLOPT_KEYPASSWD
로 암호를 설정하십시오.cURL 7.16.1에 추가됨 CURLOPT_SSL_CIPHER_LIST
SSL에 사용할 암호 목록입니다. 예를 들어 RC4-SHA
및TLSv1
은 유효한 암호 목록입니다.CURLOPT_SSLCERT
PEM 형식의 인증서가 포함된 파일의 이름입니다. CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERT 인증서를 사용하는 데 필요한 비밀번호입니다. CURLOPT_SSLCERTTYPE
인증서의 형식입니다. 지원되는 형식은 "PEM"
(기본값),"DER"
및"ENG"
입니다. OpenSSL 0.9.3부터"P12"
(PKCS#12로 인코딩된 파일용)도 지원됩니다.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
에 지정된 개인 SSL 키의 키 유형입니다. 지원되는 키 유형은"PEM"
(기본값),"DER"
및"ENG"
입니다.CURLOPT_TLS13_CIPHERS
TLS 1.3 연결에 사용할 암호 모음 목록입니다. 목록은 구문상 정확해야 하며 콜론으로 구분된 하나 이상의 암호 모음 문자열로 구성됩니다. 이 옵션은 현재 curl이 OpenSSL 1.1.1 이상을 사용하도록 빌드된 경우에만 사용됩니다. 다른 SSL 백엔드를 사용하는 경우 CURLOPT_SSL_CIPHER_LIST
옵션을 사용하여 TLS 1.3 암호 제품군을 설정할 수 있습니다.PHP 7.3.0 및 libcurl >= cURL 7.61.0부터 사용 가능합니다. OpenSSL >= 1.1.1로 빌드할 때 사용 가능합니다. CURLOPT_UNIX_SOCKET_PATH
Unix 도메인 소켓을 연결 끝점으로 사용하도록 설정하고 경로를 지정된 문자열로 설정합니다. cURL 7.40.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_URL
가져올 URL입니다. 이는 curl_init()로 세션을 초기화할 때도 설정할 수 있습니다. CURLOPT_USERAGENT
HTTP 요청에서 사용할 "User-Agent: "
헤더의 내용입니다.CURLOPT_USERNAME
인증에 사용할 사용자 이름입니다. cURL 7.19.1에 추가되었습니다. CURLOPT_PASSWORD
인증에 사용할 비밀번호입니다. cURL 7.19.1에 추가되었습니다. CURLOPT_USERPWD
연결에 사용할 "[username]:[password]"
형식의 사용자 이름과 암호.CURLOPT_XOAUTH2_BEARER
OAuth 2.0 액세스 토큰을 지정합니다. cURL 7.33.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. value
은option
매개변수의 다음 값에 대한 배열이어야 합니다.Option Set value
toNotes CURLOPT_CONNECT_TO
URL의 호스트 및 포트 대신 특정 호스트 및 포트에 연결합니다. HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT
형식의 문자열 배열을 허용합니다.cURL 7.49.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_HTTP200ALIASES
오류가 아닌 유효한 응답으로 처리될 HTTP 200 응답의 배열입니다. cURL 7.10.3에 추가되었습니다. CURLOPT_HTTPHEADER
array('Content-type: text/plain', 'Content-length: 100')
형식으로 설정할 HTTP 헤더 필드의 배열CURLOPT_POSTQUOTE
FTP 요청이 수행된 후 서버에서 실행할 FTP 명령의 배열입니다. CURLOPT_PROXYHEADER
프록시에 전달할 사용자 정의 HTTP 헤더의 배열입니다. cURL 7.37.0에 추가되었습니다. PHP 7.0.7부터 사용 가능합니다. CURLOPT_QUOTE
FTP 요청 전에 서버에서 실행할 FTP 명령의 배열입니다. CURLOPT_RESOLVE
특정 호스트 및 포트 쌍에 대한 사용자 지정 주소를 제공합니다. 호스트 이름, 포트 및 IP 주소 문자열의 배열로, 각 요소는 콜론으로 구분됩니다. 형식: array("example.com:80:127.0.0.1")
cURL 7.21.3에 추가되었습니다. value
은option
매개변수의 다음 값에 대한 스트림 리소스(예: fopen() 사용)여야 합니다.Option Set value
toCURLOPT_FILE
전송을 기록해야 하는 파일입니다. 기본값은 STDOUT
(브라우저 창)입니다.CURLOPT_INFILE
업로드할 때 전송을 읽어야 하는 파일입니다. CURLOPT_STDERR
STDERR
대신 오류를 출력할 대체 위치입니다.CURLOPT_WRITEHEADER
전송의 헤더 부분이 기록되는 파일입니다. value
은 유효한 함수의 이름이거나option
매개변수의 다음 값에 대한 클로저여야 합니다.Option Set value
toCURLOPT_HEADERFUNCTION
두 개의 매개변수를 허용하는 콜백. 첫 번째는 cURL 리소스이고 두 번째는 쓸 헤더 데이터가 있는 문자열입니다. 헤더 데이터는 이 콜백에 의해 작성되어야 합니다. 쓰여진 바이트 수를 반환합니다. CURLOPT_PASSWDFUNCTION
세 개의 매개변수를 받는 콜백. 첫 번째는 cURL 리소스이고, 두 번째는 비밀번호 프롬프트가 포함된 문자열이며, 세 번째는 최대 비밀번호 길이입니다. 암호가 포함된 문자열을 반환합니다. CURLOPT_PROGRESSFUNCTION
5개의 매개변수를 허용하는 콜백. 첫 번째는 cURL 리소스이고, 두 번째는 이 전송에서 다운로드될 것으로 예상되는 총 바이트 수이고, 세 번째는 지금까지 다운로드된 바이트 수이고, 네 번째는 이 전송에서 업로드될 것으로 예상되는 총 바이트 수입니다. 다섯 번째는 지금까지 업로드된 바이트 수입니다. 메모: 콜백은
CURLOPT_NOPROGRESS
옵션이false
로 설정된 경우에만 호출됩니다.전송을 중단하려면 0이 아닌 값을 반환합니다. 이 경우 전송은
CURLE_ABORTED_BY_CALLBACK
오류를 설정합니다.CURLOPT_READFUNCTION
세 개의 매개변수를 받는 콜백. 첫 번째는 cURL 리소스, 두 번째는 CURLOPT_INFILE
옵션을 통해 cURL에 제공되는 스트림 리소스, 세 번째는 읽을 최대 데이터 양입니다. 콜백은 일반적으로 전달된 스트림 리소스에서 읽어서 요청된 데이터 양보다 작거나 같은 길이의 문자열을 반환해야 합니다.EOF
를 알리기 위해 빈 문자열을 반환해야 합니다.CURLOPT_WRITEFUNCTION
두 개의 매개변수를 허용하는 콜백. 첫 번째는 cURL 리소스이고 두 번째는 쓸 데이터가 있는 문자열입니다. 이 콜백으로 데이터를 저장해야 합니다. 기록된 정확한 바이트 수를 반환해야 하며 그렇지 않으면 오류와 함께 전송이 중단됩니다. 다른 값:
Option Set value
toCURLOPT_SHARE
curl_share_init()의 결과입니다. cURL 핸들이 공유 핸들의 데이터를 사용하도록 합니다.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | handle 은 이제 CurlHandle 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다. |
7.3.15, 7.4.3 |
Introduced CURLOPT_HTTP09_ALLOWED .
|
7.3.0 |
Introduced CURLOPT_ABSTRACT_UNIX_SOCKET , CURLOPT_KEEP_SENDING_ON_ERROR ,
CURLOPT_PRE_PROXY , CURLOPT_PROXY_CAINFO ,
CURLOPT_PROXY_CAPATH , CURLOPT_PROXY_CRLFILE ,
CURLOPT_PROXY_KEYPASSWD , CURLOPT_PROXY_PINNEDPUBLICKEY ,
CURLOPT_PROXY_SSLCERT , CURLOPT_PROXY_SSLCERTTYPE ,
CURLOPT_PROXY_SSL_CIPHER_LIST , CURLOPT_PROXY_SSLKEY ,
CURLOPT_PROXY_SSLKEYTYPE , CURLOPT_PROXY_SSL_OPTIONS ,
CURLOPT_PROXY_SSL_VERIFYHOST , CURLOPT_PROXY_SSL_VERIFYPEER ,
CURLOPT_PROXY_SSLVERSION , CURLOPT_PROXY_TLSAUTH_PASSWORD ,
CURLOPT_PROXY_TLSAUTH_TYPE , CURLOPT_PROXY_TLSAUTH_USERNAME ,
CURLOPT_SOCKS5_AUTH , CURLOPT_SUPPRESS_CONNECT_HEADERS ,
CURLOPT_DISALLOW_USERNAME_IN_URL , CURLOPT_DNS_SHUFFLE_ADDRESSES ,
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS , CURLOPT_HAPROXYPROTOCOL ,
CURLOPT_PROXY_TLS13_CIPHERS , CURLOPT_SSH_COMPRESSION ,
CURLOPT_TIMEVALUE_LARGE and CURLOPT_TLS13_CIPHERS .
|
7.0.7 |
Introduced CURL_HTTP_VERSION_2 , CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE ,
CURL_HTTP_VERSION_2TLS , CURL_REDIR_POST_301 ,
CURL_REDIR_POST_302 , CURL_REDIR_POST_303 ,
CURL_REDIR_POST_ALL , CURL_VERSION_KERBEROS5 ,
CURL_VERSION_PSL , CURL_VERSION_UNIX_SOCKETS ,
CURLAUTH_NEGOTIATE , CURLAUTH_NTLM_WB ,
CURLFTP_CREATE_DIR , CURLFTP_CREATE_DIR_NONE ,
CURLFTP_CREATE_DIR_RETRY , CURLHEADER_SEPARATE ,
CURLHEADER_UNIFIED , CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE ,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE , CURLMOPT_MAX_HOST_CONNECTIONS ,
CURLMOPT_MAX_PIPELINE_LENGTH , CURLMOPT_MAX_TOTAL_CONNECTIONS ,
CURLOPT_CONNECT_TO , CURLOPT_DEFAULT_PROTOCOL ,
CURLOPT_DNS_INTERFACE , CURLOPT_DNS_LOCAL_IP4 ,
CURLOPT_DNS_LOCAL_IP6 , CURLOPT_EXPECT_100_TIMEOUT_MS ,
CURLOPT_HEADEROPT , CURLOPT_LOGIN_OPTIONS ,
CURLOPT_PATH_AS_IS , CURLOPT_PINNEDPUBLICKEY ,
CURLOPT_PIPEWAIT , CURLOPT_PROXY_SERVICE_NAME ,
CURLOPT_PROXYHEADER , CURLOPT_SASL_IR ,
CURLOPT_SERVICE_NAME , CURLOPT_SSL_ENABLE_ALPN ,
CURLOPT_SSL_ENABLE_NPN , CURLOPT_SSL_FALSESTART ,
CURLOPT_SSL_VERIFYSTATUS , CURLOPT_STREAM_WEIGHT ,
CURLOPT_TCP_FASTOPEN , CURLOPT_TFTP_NO_OPTIONS ,
CURLOPT_UNIX_SOCKET_PATH , CURLOPT_XOAUTH2_BEARER ,
CURLPROTO_SMB , CURLPROTO_SMBS ,
CURLPROXY_HTTP_1_0 , CURLSSH_AUTH_AGENT and
CURLSSLOPT_NO_REVOKE .
|
Examples
예제 #1 새 cURL 세션 초기화 및 웹 페이지 가져오기
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
메모
메모: CURLOPT_POSTFIELDS
에 배열을 전달하면 데이터가 multipart/form-data로 인코딩되는 반면 URL 인코딩된 문자열을 전달하면 데이터가 application/x-www-form-urlencoded로 인코딩됩니다.
기타
- curl_setopt_array() - cURL 전송에 대한 여러 옵션 설정
- CURLFile
- CURLStringFile