PHPCurl使用详解Word格式.docx
- 文档编号:21149379
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:20
- 大小:26.92KB
PHPCurl使用详解Word格式.docx
《PHPCurl使用详解Word格式.docx》由会员分享,可在线阅读,更多相关《PHPCurl使用详解Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。
默认行为是返回一个正常页,忽略代码。
*CURLOPT_UPLOAD:
如果你想让PHP为上传做准备,设置这个选项为一个非零值。
*CURLOPT_POST:
如果你想PHP去做一个正规的HTTPPOST,设置这个选项为一个非零值。
这个POST是普通的application/x-www-from-urlencoded类型,多数被HTML表单使用。
*CURLOPT_FTPLISTONLY:
设置这个选项为非零值,PHP将列出FTP的目录名列表。
*CURLOPT_FTPAPPEND:
设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。
*CURLOPT_NETRC:
设置这个选项为一个非零值,PHP将在你的~./netrc文件中查找你要建立连接的远程站点的用户名及密码。
*CURLOPT_FOLLOWLOCATION:
设置这个选项为一个非零值(象“Location:
“)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如“Location:
“的头)。
*CURLOPT_PUT:
设置这个选项为一个非零值去用HTTP上传一个文件。
要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
*CURLOPT_MUTE:
设置这个选项为一个非零值,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:
[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:
传递一个包含HTTPcookie的头连接。
*CURLOPT_SSLCERT:
传递一个包含PEM格式证书的字符串。
*CURLOPT_SSLCERTPASSWD:
传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
*CURLOPT_COOKIEFILE:
传递一个包含cookie数据的文件的名字的字符串。
这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
*CURLOPT_CUSTOMREQUEST:
当进行HTTP请求时,传递一个字符被GET或HEAD使用。
为进行DELETE或其它操作是有益的,更PassastringtobeusedinsteadofGETorHEADwhendoinganHTTPrequest.Thisisusefulfordoingoranother,moreobscure,HTTPrequest.注意:
在确认你的服务器支持命令先不要去这样做。
下列的选项要求一个文件描述(通过使用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);
//getdataafterlogin
例二:
$ch2=curl_init();
curl_setopt($ch2,CURLOPT_URL,‘http:
//*****’);
curl_setopt($ch2,CURLOPT_HEADER,false);
curl_setopt($ch2,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch2,CURLOPT_COOKIEFILE,$cookie_jar);
$orders=curl_exec($ch2);
echo”;
echostrip_tags($orders);
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="
"
;
$HTTP_URL="
/"
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;
MSIE6.0;
WindowsNT5.1;
SV1;
.NETCLR1.1.4322;
.NETCLR2.0.50727)"
);
//curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION);
$res=curl_exec($ch);
curl_close($ch);
print_r($res);
刷论坛代码:
1、抓cookies程序:
$URL="
//填入论坛的登陆页面地址
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER,"
//设置,访问页面的来源地址
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,'
username=→→敢死队→&
password=168168'
//分析登陆页面,把用户名,密码分别对应起来
curl_setopt($ch,CURLOPT_HEADER,true);
//使能显示http头,
if(curl_errno($ch))
{
printcurl_error($ch);
else
2、刷楼了:
//设置程序执行时间无限制
$i=10000;
//耍10000次
for($j=0;
$j<
$i;
$j++)
//这个地址是回复表单里面action的url地址
//设置来源地址,如果不设置,论坛服务器有可能有验证不允许回复
curl_setopt($ch,CURLOPT_COOKIESESSION,true);
//能保存cookie
curl_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_NOBODY,1);
//不显示内容,因为有很多论坛回复后要自动跳转。
Body=gfdfgdfgasdfgdfgdfgdfg&
followup=672709&
RootID=127437&
star=58&
TotalUseTable=Dv_bbs3&
amp;
UserName=→→敢死队→&
signflag=1&
total=65535'
//把你分析的回复表单的参数分别赋值
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—GetallthesocketsassociatedwiththecURLextension,whichcanthenbe"
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("
curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的
print_r(curl_version())
curl_getinfo()函数的作用是获取一个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第一个参数是curl的资源句柄,第二个参数是下面一些常量:
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_DOWNLOAD
平均下载速度
CURLINFO_SPEED_UPLOAD
平均上传速度
CURLINFO_HEADER_SIZE
header部分的大小
CURLINFO_HEADER_OUT
发送请求的字符串
CURLINFO_REQUEST_SIZE
在HTTP请求中有问题的请求的大小
CURLINFO_SSL_VERIFYRESULT
ResultofSSLcertificationverificationrequestedbysettingCURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD
从Content-Length:
field中读取的下载内容长度
CURLINFO_CONTENT_LENGTH_UPLOAD
上传内容大小的说明
CURLINFO_CONTENT_TYPE
下载内容的“Content-type”值,NULL表示服务器没有发送有效的“Content-Type:
header”
curl_setopt()函数的作用是为一个curl设置会话参数。
curl_setopt_array()函数的作用是以数组的形式为一个curl设置会话参数。
$fp=fopen("
example_homepage.txt"
"
w"
curl_setopt($ch,CURLOPT_FILE,$fp);
$options=array(
CURLOPT_URL=>
‘
CURLOPT_HEADER=>
false
curl_setopt_array($ch,$options);
fclose($fp);
可设置的参数有:
CURLOPT_AUTOREFERER
自动设置header中的referer信息
CURLOPT_BINARYTRANSFER
在启用CURLOPT_RETURNTRANSFER时候将获取数据返回
CURLOPT_COOKIESESSION
启用时curl会仅仅传递一个sessioncookie,忽略其他的cookie,默认状况下curl会将所有的cookie返回给服务端。
sessioncookie是指那些用来判断服务器端的session是否有效而存在的cookie。
CURLOPT_CRLF
启用时将Unix的换行符转换成回车换行符。
CURLOPT_DNS_USE_GLOBAL_CACHE
启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认为true。
CURLOPT_FAILONERROR
显示HTTP状态码,默认行为是忽略编号小于等于400的HTTP信息
CURLOPT_FILETIME
启用时会尝试修改远程文档中的信息。
结果信息会通过curl_getinfo()函数的CURLINFO_FILETIME选项返回。
CURLOPT_FOLLOWLOCATION
启用时会将服务器服务器返回的“Location:
”放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。
CURLOPT_FORBID_REUSE
在完成交互以后强迫断开连接,不能重用。
CURL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHPCurl 使用 详解