>백엔드 개발 >PHP 튜토리얼 >PHP 개발 h5 소스 코드 컬 사용 예

PHP 개발 h5 소스 코드 컬 사용 예

小云云
小云云원래의
2018-03-08 14:02:511346검색

PHP 개발 h5 체스 및 카드 소스코드 컬 사용법(aqiulian.com), 기타 PHPcurl 사용법 상담 Q: 212303635. 컬은 URL 구문을 사용하고 FTP, FTPS, HTTP HTTPS SCP SFTP TFTP TELNET DICT FILE 및 LDAP를 지원하는 파일 전송 도구입니다. 컬은 SSL 인증서, HTTP POST, HTTP PUT, FTP 업로드, Kerberos, HTTP 기반 업로드, 프록시, 쿠키, 사용자+비밀번호 인증, 파일 전송 복구, http 프록시 채널 및 기타 유용한 트릭을 지원합니다. 자세한 내용은 참조 매뉴얼을 참조하세요

PHP는 기본적으로 이 기능을 확장하지 않는 것으로 밝혀졌지만 여전히 사용할 수 있지만 활성화되어 있지 않습니다. PHP 설치 디렉토리를 열고 ssleay32.dll, libeay32.dll 및 php_curl.dll 세 파일을 검색하여 시스템 디렉토리의 system32 폴더에 하나씩 복사하고 php.ini 파일을 수정한 후 다음 행을 찾으십시오. 확장명= php_curl.dll 앞에 있는 ; 기호를 제거하고 저장한 후 서버를 다시 시작합니다. 사이트 디렉터리에 다음 내용으로 PHP 파일을 생성합니다.

$ch = curl_init(“http://www.php.net”);
curl_exec($ch);
curl_close($ch);

Preview http://www.php.net이 열리면 설치에 성공한 것입니다.

Linux 및 Unix 설치의 경우 조금 더 번거로울 수 있습니다. http://curl.haxx.se/ 또는 기타 웹사이트에서 컬 라이브러리를 다운로드해야 합니다.

이 기능에 대한 다음 매개변수는 다음과 같습니다. :

bool 컬_setopt (int ch, 문자열 옵션, 혼합 값) 컬_setopt() 함수는 CURL 세션에 대한 옵션을 설정합니다. option 매개변수는 원하는 설정이고 value는 이 옵션에서 제공하는 값입니다.

다음 옵션의 값은 긴 정수로 사용됩니다(옵션 매개변수에 지정됨):

 


* CURLOPT_INFILESIZE: 원격 사이트에 파일을 업로드할 때 이 옵션은 PHP에 파일 크기를 알려줍니다. 업로드되었습니다.

* CURLOPT_VERBOSE: CURL이 예상치 못한 모든 이벤트를 보고하도록 하려면 이 옵션을 0이 아닌 값으로 설정하세요.

* CURLOPT_HEADER: 출력에 헤더를 포함하려면 이 옵션을 0이 아닌 값으로 설정하세요.
* CURLOPT_NOPROGRESS: PHP가 CURL 전송에 대한 진행률 표시줄을 표시하지 않도록 하려면 이 옵션을 0이 아닌 값으로 설정하세요. 참고: PHP는 자동으로 이 옵션을 0이 아닌 값으로 설정하므로 디버깅 목적으로만 이 옵션을 변경해야 합니다.
* CURLOPT_NOBODY: 출력에 본문 부분을 포함하지 않으려면 이 옵션을 0이 아닌 값으로 설정하세요.
* CURLOPT_FAILONERROR: 오류가 발생할 때(HTTP 코드가 300보다 크거나 같은 반환) PHP가 표시되지 않도록 하려면 이 옵션을 0이 아닌 값으로 설정하세요. 기본 동작은 일반 페이지를 반환하고 코드를 무시하는 것입니다.
* CURLOPT_UPLOAD: PHP가 업로드를 준비하도록 하려면 이 옵션을 0이 아닌 값으로 설정하세요.
* CURLOPT_POST: PHP가 일반 HTTP POST를 수행하도록 하려면 이 옵션을 0이 아닌 값으로 설정하세요. 이 POST는 HTML 양식에서 주로 사용되는 일반 application/x-www-from-urlencoded 유형입니다.
* CURLOPT_FTPLISTONLY: 이 옵션을 0이 아닌 값으로 설정하면 PHP는 FTP의 디렉터리 이름을 나열합니다.
* CURLOPT_FTPAPPEND: 이 옵션을 0이 아닌 값으로 설정하면 PHP는 원격 파일을 덮어쓰는 대신 원격 파일을 적용합니다.
* CURLOPT_NETRC: 이 옵션을 0이 아닌 값으로 설정하면 PHP는 ~./netrc 파일에서 연결하려는 원격 사이트의 사용자 이름과 비밀번호를 찾습니다.
* CURLOPT_FOLLOWLOCATION: 이 옵션을 0이 아닌 헤더(예: "Location: ")로 설정하면 서버는 이를 HTTP 헤더의 일부로 보냅니다(이는 재귀적이므로 PHP는 "Location: "과 같은 헤더를 보냅니다). .
* CURLOPT_PUT: HTTP를 사용하여 파일을 업로드하려면 이 옵션을 0이 아닌 값으로 설정하세요. 이 파일을 업로드하려면 CURLOPT_INFILE 및 CURLOPT_INFILESIZE 옵션을 설정해야 합니다.
* CURLOPT_MUTE: 이 옵션을 0이 아닌 값으로 설정하면 PHP는 CURL 함수에 대해 완전히 침묵합니다.
* CURLOPT_TIMEOUT: 긴 정수를 최대 초 수로 설정합니다.
* CURLOPT_LOW_SPEED_LIMIT: 전송되는 바이트 수를 제어하려면 긴 정수를 설정합니다.
* CURLOPT_LOW_SPEED_TIME: CURLOPT_LOW_SPEED_LIMIT에 지정된 바이트 수를 전송할 시간(초)을 제어하려면 긴 정수를 설정하세요.
* CURLOPT_RESUME_FROM: 바이트 오프셋 주소(전송하려는 시작 형식)가 포함된 긴 매개변수를 전달합니다.
* CURLOPT_SSLVERSION: SSL 버전이 포함된 긴 매개변수를 전달합니다. 기본적으로 PHP는 자체적으로 어려운 작업을 수행하므로 보안을 강화하려면 수동으로 설정해야 합니다.
* CURLOPT_TIMECONDITION: 긴 매개변수를 전달하여 CURLOPT_TIMEVALUE 매개변수 처리 방법을 지정합니다. 이 매개변수를 TIMECOND_IFMODSINCE 또는 TIMECOND_ISUNMODSINCE로 설정할 수 있습니다. 이는 HTTP에만 해당됩니다.
* CURLOPT_TIMEVALUE: 1970-1-1부터 현재까지의 시간(초)을 전달합니다. 이 시간은 CURLOPT_TIMEVALUE 옵션 또는 기본 TIMECOND_IFMODSINCE에 의해 지정된 값으로 사용됩니다.

다음 옵션의 값은 문자열로 처리됩니다.

* CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
* CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
* CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
* CURLOPT_RANGE: 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
* CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。
* CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
* CURLOPT_USERAGENT: 在HTTP请求中包含一个”user-agent”头的字符串。
* CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。
* CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。
* CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。
* CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
* CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
* CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得): 
* CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
* CURLOPT_INFILE: 这个文件是你传送过来的输入文件。
* CURLOPT_WRITEHEADER: 这个文件写有你输出的头部分。
* CURLOPT_STDERR: 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.

摘几个从别的网站扣过来的例子:

例一:

$cookie_jar = tempnam(‘./tmp’,'cookie’);
$ch = curl_init(); curl_setopt($ch,CURLOPT_URL, ‘http://******’);
curl_setopt($ch, CURLOPT_POST, 1);
$request = ‘email_address=&password=&action=’;
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //把返回来的cookie信息保存在$cookie_jar文件中
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //设定返回的数据是否自动显示
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息
curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_exec($ch);
curl_close($ch); //get data after login

例二:

$ch2 = curl_init();curl_setopt($ch2, CURLOPT_URL, ‘ 
curl_setopt($ch2, CURLOPT_HEADER, false);curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);$orders = curl_exec($ch2);echo ”;
echo strip_tags($orders);echo ”;curl_close($ch2); 实践证明很稳定:)

例三:

set_time_limit(0);
function _rand() {
$length=26;
$chars = “0123456789abcdefghijklmnopqrstuvwxyz”;
$max = strlen($chars) – 1;
mt_srand((double)microtime() * 1000000);
$string = ”;
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
$HTTP_SESSION=_rand();
echo $HTTP_SESSION;
$HTTP_Server="www.baidu.com";
$HTTP_URL="/";
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,"http://".$HTTP_Server.$HTTP_URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
//curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION);
$res = curl_exec($ch);
curl_close ($ch);
print_r($res);

刷论坛代码:
1、抓cookies程序:

$URL="http://www.yoururl.com/bbs/login.asp?action=chk";//填入论坛的登陆页面地址$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER,"http://www.hxfoods.com/bbs/login.asp");//设置,访问页面的来源地址
curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,&#39;username=→→敢死队→&password=168168&#39;);
//分析登陆页面,把用户名,密码分别对应起来curl_setopt ($ch, CURLOPT_HEADER,true);
//使能显示http头,curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);}

2、刷楼了:

set_time_limit(0);//设置程序执行时间无限制$i=10000;//耍10000次for($j=0;$j<$i;$j++){
$URL="http://www.yoururl.com/bbs/savepost.asp";//这个地址是回复表单里面action的url地址$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER," 
//设置来源地址,如果不设置,论坛服务器有可能有验证不允许回复curl_setopt($ch,CURLOPT_COOKIESESSION,true);
//能保存cookiecurl_setopt
($ch,CURLOPT_COOKIE,"DvForum=userid=24122&usercookies=0&userhidden=2&password=w0reu3g775VrY745&userclass=%96%7C&username=%A1%FA%A1
%FA%B8%D2%CB%C0%B6%D3%A1%FA&StatUserID=2194783945 ");//这儿就是设置cookie了curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_NOBODY,1);
//不显示内容,因为有很多论坛回复后要自动跳转。curl_setopt($ch,CURLOPT_POSTFIELDS,&#39;Body=gfdfgdfgasdfgdfgdfgdfg& followup=672709&RootID=1274
37&star=58&TotalUseTable=Dv_bbs3& amp;UserName=→→敢死队→&signflag=1&total=65535&#39;);//把你分析的回复表单的参数分别赋值curl_setopt ($ch, CURLOPT_
HEADER,true);curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);}
}

curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息

curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

$ch = curl_init("http://www.baidu.com/");
curl_exec($ch);
curl_close($ch);

curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的

print_r(curl_version())

curl_getinfo()函数的作用是获取一个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第一个参数是curl的资源句柄,第二个参数是下面一些常量:

$ch = curl_init("http://www.baidu.com/");
print_r(curl_getinfo($ch));

可选的常量包括:

CURLINFO_EFFECTIVE_URL
最后一个有效的url地址

CURLINFO_HTTP_CODE
最后一个收到的HTTP代码

CURLINFO_FILETIME
远程获取文档的时间,如果无法获取,则返回值为“-1”

CURLINFO_TOTAL_TIME
마지막 전송에 소요된 시간

CURLINFO_NAMELOOKUP_TIME
이름 확인에 소요된 시간

CURLINFO_CONNECT_TIME
연결 설정에 소요된 시간

CURLINFO_PRETRANSFER_TIME
연결 설정부터 전송 준비까지 소요된 시간

CURLINFO_STARTTRANSFER_TIME
소요 시간에서 생성됨 전송 시작 ​​연결

CURLINFO_REDIRECT_TIME
트랜잭션 전송 시작 ​​전 리디렉션에 걸린 시간

CURLINFO_SIZE_UPLOAD
업로드된 데이터 크기의 총 값

CURLINFO_SIZE_DOWNLOAD
다운로드된 데이터 크기의 총 값

CURLINFO_SPEED_DOWNLO AD
Average 다운로드 속도

CURLINFO_SPEED_UPLOAD
평균 업로드 속도

CURLINFO_HEADER_SIZE
헤더 섹션 크기

CURLINFO_HEADER_OUT
요청된 문자열 보내기

CURLINFO_REQUEST_SIZE
HTTP 요청에서 문제가 있는 요청 크기

CURLINFO_SSL_VERIFYRESULT
설정 C에서 요청한 SSL 인증 확인 결과 URLOPT_SSL_VERIFYPEER

CURLINFO_CONTENT_LENGTH_DOWNLOAD
다음에서 읽은 콘텐츠 길이 다운로드 Content-Length: field

CURLINFO_CONTENT_LENGTH_UPLOAD
업로드 콘텐츠 크기 설명

CURLINFO_CONTENT_TYPE
다운로드 콘텐츠의 "Content-type" 값, NULL은 서버가 유효한 "Content-Type: 헤더"를 보내지 않았음을 나타냅니다

curl_setopt( ) 함수는 컬에 대한 세션 매개변수를 설정하는 데 사용됩니다. curl_setopt_array() 함수는 배열 형태로 컬에 대한 세션 매개변수를 설정하는 데 사용됩니다. ' http://www.baidu.com/',

CURLOPT_HEADER => false

);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
fclose($ fp );

설정할 수 있는 매개변수는 다음과 같습니다.

CURLOPT_AUTOREFER
헤더에 리퍼러 정보를 자동으로 설정합니다

CURLOPT_BINARYTRANSFER

CURLOPT_RETURNTRANSFER가 활성화되면 데이터를 가져오고

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

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

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

CURLOPT_FAILONERROR
HTTP 상태 코드를 표시합니다. 기본 동작은 400 이하의 HTTP 정보를 무시하는 것입니다.

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

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

CURLOPT_FORBID_REUSE
상호작용 완료 후 강제로 연결을 끊고 재사용할 수 없습니다.

CURLOPT_FRESH_CONNECT
새 연결을 강제로 캐시에 있는 연결로 대체하세요.

CURLOPT_FTP_USE_EPRT
TRUE는 활성 FTP 다운로드를 수행할 때 EPRT(및 LPRT)를 사용합니다. EPRT 및 LPRT를 비활성화하고 PORT만 사용하려면 FALSE를 사용하세요.

PHP 5.0.0에 추가되었습니다.


CURLOPT_FTP_USE_EPSV

TRUE를 사용하여 EPSV 명령을 먼저 시도해보세요. EPSV를 비활성화하려면 FALSE로 설정하세요.


CURLOPT_FTPAPPEND
TRUE를 덮어쓰는 대신 원격 파일에 추가하세요.

CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT의 별칭입니다.

CURLOPT_FTPLISTONLY
TR UE FTP 디렉터리의 이름만 나열합니다.

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

CURLOPT_HTTPGET
활성화하면 HTTP 메서드가 GET으로 설정됩니다. GET이 기본값이므로 수정하는 경우에만 사용됩니다.

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

CURLOPT_MUTE
curl 함수에서 수정된 모든 매개변수를 기본값으로 복원합니다.

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

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

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

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

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

CURLOPT_PUT
을 사용하면 CURLOPT_INFILE과 CURLOPT_INFILESIZE를 동시에 설정해야 합니다.

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

CURLOPT_SSL_VERIFYPEER
FALSE는 cURL이 피어의 인증서를 확인하지 못하도록 합니다. CURLOPT_CAINFO 옵션을 사용하여 확인할 대체 인증서를 지정하거나 CURLOPT_SSL_VERIFYPEER가 비활성화된 경우 CURLOPT_SSL_VERIFYHOST를 TRUE 또는 FALSE로 지정해야 할 수도 있습니다. (기본값은 2입니다.) cURL 7.10부터 기본 번들은 FTP 전송에 ASCII 모드를 사용하기 위해 설치됩니다. Windows 시스템에서는 STDOUT을 바이너리 모드로 설정하지 않습니다.

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

CURLOPT_UPLOAD
활성화되면 파일 전송을 허용합니다

CURLOPT_VERBOSE
활성화되면 모든 정보가 보고되고 STDERR 또는 지정된 CURLOPT_STDERR

CURLOPT_BUFFERSIZE
매번 얻은 데이터로 읽어오는 캐시의 크기, 이 값은 다음과 같습니다. 매번 읽으세요. 채워지세요.

CURLOPT_CLOSEPOLICY
CURLCLOSEPOLICY_LEAST_RECENTLY_USED 또는 CURLCLOSEPOLICY_OLDEST 세 가지가 있지만 컬은 아직 이를 지원하지 않습니다. .

CURLOPT_CONNECTTIMEOUT
연결을 시작하기 전에 기다리는 시간입니다. 0으로 설정하면 대기 시간이 없습니다.

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

CURLOPT_FTPSSLAUTH
FTP 인증 방법(활성화된 경우): CURLFTPAUTH_SSL(SSL 먼저 시도), CURLFTPAUTH_TLS(TLS 먼저 시도) 또는 CURLFTPAUTH_DEFAULT(cURL 결정).

CURLOPT_HTTP_VERSION
curl에서 사용하는 HTTP 프로토콜 설정, CURL_HTTP_VER SION_ 없음 (curl이 스스로 판단하도록 함), CURL_HTTP_VERSION_1_0 (HTTP/1.0), CURL_HTTP_VERSION_1_1 (HTTP/1.1)

CURLOPT_HTTPAUTH
사용된 HTTP 확인 방법, 선택 값은 다음과 같습니다: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, LM, CURLAUTH_A 뉴욕, CURLAUTH_ANYSAFE "|" 연산자를 사용하면 서버가 가장 잘 지원되는 값을 선택할 수 있습니다. CURLAUTH_ANY는 CURLAUTH_BASIC | CURLAUTH_GSSNEGOTIATE | CURLAUTH_DIGEST |

CURLOPT _INFILESIZE

설정 업로드된 파일의 크기

CURLOPT_LOW_SPEED_LIMIT

전송 속도가 CURLOPT_LOW_SPEED_LIMIT보다 낮으면 PHP는 CURLOPT_LOW_SPEED_TIME을 사용하여 전송이 너무 느리기 때문에 취소할지 여부를 결정합니다.

CURLOPT_LOW_SPEED_TIME

PHP가 전송이 너무 느리다고 간주하여 중단하려면 전송이 CURLOPT_LOW_SPEED_LIMIT보다 작아야 합니다.
전송 속도가 CURLOPT_LOW_SPEED_LIMIT보다 낮으면 PHP는 CURLOPT_LOW_SPEED_TIME을 사용하여 전송을 취소할지 여부를 결정합니다. 느린.

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

CURLOPT_MAXREDIRS

이 옵션은 CURLOPT_FOLLOWLOCATION과 함께 사용됩니다.

CURLOPT_PORT

연결 포트를 지정하는 데 사용되는 선택적 수량

CURLOPT_PROXYAUTH

프록시 연결에 사용할 HTTP 인증 방법은 CURLOPT_HTTPAUTH에 설명된 것과 동일한 비트마스크를 사용합니다. 현재는 CURLAUTH_BASIC 및 CURLAUTH_NTLM입니다. 지원됩니다.

CURLOPT_PROXYPORT

연결할 프록시의 포트 번호입니다.
전송을 재개할 때 바이트 오프셋(재개된 전송에 사용됨)

CURLOPT_SSL_VERIFYHOST
1을 전달하여 SSL 피어 인증서에 일반 이름이 있는지 확인하세요.

2를 사용하여 일반 이름이 있는지 확인하고 제공된 호스트 이름과 일치하는지 확인합니다.


CURLOPT_SSLVERSION

사용할 SSL 버전(2 또는 3)은 기본적으로 PHP가 이를 자체적으로 확인하려고 시도하지만 일부 경우에는 반드시 이를 확인해야 합니다.


CURLOPT_TIMECONDITION

CURLOPT_TIMEVALUE로 지정한 특정 시간이 지나면 편집된 경우 CURL_TIMECOND_IFMODSINCE를 사용하여 페이지를 반환하고 CURLOPT_HEADER가 true인 경우 "304 Not Modified" 헤더가 반환됩니다. CURLOPT_HEADER가 false인 경우 CURL_TIMECOND_ISUNMODSINCE를 사용합니다. 기본값은 CURL_TIMECOND_IFMODSINCE


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

CURLOPT_TIMEVALUE
CURLOPT_TIMECONDITION에서 사용하는 타임스탬프를 설정합니다. D_IFMODSINCE가 사용됩니다

CURLOPT_CAINFO
피어를 확인하기 위해 하나 이상의 인증서를 보유하는 파일 이름입니다. 이는 CURLOPT_SSL_VERIFYPEER.

CURLOPT_CAPATH
여러 CA 인증서와 함께 사용되는 경우에만 의미가 있습니다.

CURLOPT_COOKIEFILE
쿠키 정보가 포함된 파일 이름입니다. 이 쿠키 파일은 Netscape 형식이거나 HTTP 스타일 헤더 정보일 수 있습니다.

CURLOPT_COOKIEJAR
연결이 종료된 후 쿠키 정보를 저장하는 파일 이름

CURLOPT_CUSTOMREQUEST
HTTP 요청 시 "GET" 또는 "HEAD" 대신 사용할 사용자 정의 요청 방법입니다. "DELETE"를 수행하는 데 유용합니다. " 또는 기타 더 모호한 HTTP 요청입니다. 유효한 값은 "GET", "POST", "CONNECT" 등입니다. 예를 들어 여기에 "GET /index"를 입력하지 마십시오. .html HTTP/1.0rnrn "은 올바르지 않습니다.
참고: 서버가 먼저 사용자 정의 요청 방법을 지원하는지 확인하지 않고 이 작업을 수행하지 마세요.

CURLOPT_EGBSOCKET
CURLOPT_RANDOM_FILE과 유사하지만 엔트로피 수집 데몬 소켓에 대한 파일 이름은 제외됩니다.

CURLOPT_ENCODING
"헤더에서 승인 -인코딩: "콘텐츠의 일부이며 지원되는 인코딩 형식은 "identity", "deflate", "gzip"입니다. 빈 문자열로 설정하면 모든 인코딩 형식이 지원된다는 의미입니다.

CURLOPT_FTPPORT
FTP "POST" 명령에 사용할 IP 주소를 가져오는 데 사용되는 값 "POST" 명령은 원격 서버에 지시합니다. 문자열은 일반 IP 주소, 호스트 이름, 네트워크 인터페이스 이름(Unix에서)이거나 시스템 기본 IP 주소를 사용하는 일반 '-'일 수 있습니다.

CURLOPT_INTERFACE
외부 네트워크 인터페이스 사용되는 이름은 인터페이스 이름, IP 또는 호스트 이름일 수 있습니다.

CURLOPT_KRB4LEVEL
KRB4(Kerberos 4) 보안 수준 설정은 "clear", "safe", "confidential", "private" 값 중 하나일 수 있습니다. 기본값은 "private"입니다. null로 설정되면 KRB4가 비활성화된다는 의미입니다. 이제 KRB4 보안은 FTP 전송에만 사용할 수 있습니다.

CURLOPT_POSTFIELDS
HTTP의 "POST" 작업입니다. 파일을 전송하려면 @

CURLOPT_PROXY
로 시작하는 파일 이름이 필요합니다. HTTP 프록시 서버

CURLOPT_PROXYUSERPWD
를 설정하여 "[username] 형식의 사용자 이름과 비밀번호를 사용하여 프록시 서버에 연결하세요. :[비밀번호]".

CURLOPT_RANDOM_FILE
SSL에서 사용하는 난수 시드를 저장하는 파일 이름을 설정합니다.

CURLOPT_RANGE
HTTP 전송 범위를 설정합니다. HTTP 전송이 여러 개인 경우 전송 범위를 설정할 수 있습니다. 배수를 구분하려면 쉼표를 사용하세요. "X-Y,N-M" 형식의 값입니다.

CURLOPT_REFERER
헤더의 "Referer:" 부분 값을 설정하세요.

CURLOPT_SSL_CIPHER_LIST
SSL에 사용할 암호 목록입니다. 예를 들어 RC4-SHA 및 TLSv1은 유효한 암호 목록입니다.

CURLOPT_SSLCERT
인증서를 포함하는 문자열을 PEM 형식으로 전달하세요.

CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERT 인증서를 사용하기 위해 필요한 비밀번호가 포함된 비밀번호를 전달하세요.

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

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_URL
가져와야 하는 URL 주소는 PHP의 컬_init() 함수에서도 설정할 수 있습니다.

CURLOPT_USERAGENT
HTTP 요청에 "user-agent" 헤더 문자열이 포함되어 있습니다.

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

CURLOPT_HTTP200ALIASES
설정은 더 이상 오류 형태의 HTTP 200 응답을 처리하지 않으며 형식은 배열입니다.

CURLOPT_HTTPHEADER
헤더에 전송 내용의 배열을 설정합니다.

CURLOPT_POSTQUOTE
FTP 요청이 수행된 후 서버에서 실행할 FTP 명령 배열입니다. 위치, 값은 리소스 유형이며 기본값은 STDOUT(브라우저)입니다.

CURLOPT_INFILE
파일을 업로드할 때 읽어야 하는 파일 주소입니다. 값은 리소스 유형입니다.

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

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

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

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

CURLOPT_READFUNCTION
두 개의 매개변수로 콜백 함수를 설정합니다. 첫 번째는 컬의 리소스 핸들이고 두 번째는 읽기 데이터입니다. 데이터 읽기는 이 기능에 의존해야 합니다. 0, EOF 등 읽은 데이터의 크기를 반환합니다.

CURLOPT_WRITEFUNCTION
두 개의 매개변수로 콜백 함수를 설정합니다. 첫 번째는 컬의 리소스 핸들이고 두 번째는 작성된 데이터입니다. 데이터 쓰기는 이 기능에 의존해야 합니다. 작성된 데이터의 정확한 크기를 반환합니다

curl_copy_handle() 함수는 컬 연결 리소스의 모든 내용과 매개변수를 복사하는 것입니다

$ch = cur_init("http://www.baidu.com/");
$ another =curl_copy_handle($ch);
curl_exec($another);
curl_close($another);

curl_error() 함수는 현재 세션의 오류 정보를 포함하는 문자열을 반환하는 함수입니다.
curl_errno()의 함수는 현재 세션의 오류 정보가 포함된 숫자를 반환하는 것입니다.

curl_multi_init() 함수는 컬 배치 핸들 리소스를 초기화하는 데 사용됩니다.
curl_multi_add_handle() 함수는 컬 배치 세션에 개별 컬 핸들 리소스를 추가하는 데 사용됩니다. curl_multi_add_handle() 함수에는 두 개의 매개변수가 있습니다. 첫 번째 매개변수는 컬 배치 핸들 리소스를 나타내고, 두 번째 매개변수는 별도의 컬 핸들 리소스를 나타냅니다.
curl_multi_exec()의 함수는 컬 배치 핸들을 구문 분석하는 것입니다. 컬_멀티_exec() 함수에는 두 개의 매개변수가 있습니다. 첫 번째 매개변수는 배치 핸들 리소스를 나타내고, 두 번째 매개변수는 참조 값 매개변수로, 나머지는 필요함을 나타냅니다. 처리된 개별 컬 핸들 리소스의 수입니다.
curl_multi_remove_handle() 함수는 컬 배치 핸들 리소스에서 핸들 리소스 제거를 나타냅니다. 컬_멀티_remove_handle() 함수에는 두 개의 매개변수가 있으며, 두 번째 매개변수는 별도의 컬 핸들 리소스를 나타냅니다. .
curl_multi_close() 함수는 배치 핸들 리소스를 닫는 데 사용됩니다.

$ch1 = 컬_init();
$ch2 = 컬_init();

curl_setopt($ch1, CURLOPT_URL, “http://www.baidu.com/”);
curl_setopt($ch1, CURLOPT_HEADER, 0) ;
curl_setopt($ch2, CURLOPT_URL, “http://www.google.com/”);
curl_setopt($ch2, CURLOPT_HEADER, 0);

$mh =curl_multi_init();

curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh,$ch2);

do {
curl_multi_exec($mh,$flag);
} while ($flag > 0);

curl_multi_remove_handle($mh,$ch1);
curl_multi_remove_handle($mh,$ch2);
curl_multi_close($mh);

curl_multi_getcontent() 함수는 CURLOPT_RETURNTRANSFER가 설정된 경우 얻은 출력의 텍스트 스트림을 반환하는 것입니다.

curl_multi_info_read() 함수는 현재 구문 분석된 컬의 관련 전송 정보를 얻는 데 사용됩니다.

curl_multi_select()
cURL 확장과 관련된 모든 소켓을 가져오고 "선택"할 수 있습니다.

소스 URL:http://www.hebaodans.com/2009/07/p-h-p-c-u-r-l-yong-fa/

관련 권장 사항:

PHP에서 CURL을 사용하는 방법

php 데이터 크롤링 컬 예제 자세한 설명

CURL을 사용하는 PHP 자세한 설명

위 내용은 PHP 개발 h5 소스 코드 컬 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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