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, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 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, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 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='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); 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['cookie'] = substr($matches[1][0], 1); $info['content'] = $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 응답 헤더 정보의 문자열입니다. 이 콜백 함수를 사용하면 응답 헤더 정보가 자동으로 처리됩니다. 응답 헤더 정보는 전체 문자열입니다. 반환 값을 작성된 문자열의 정확한 길이로 설정하십시오. 오류가 발생하면 전송 스레드가 종료됩니다.