PHP开发h5源码curl⽤法
PHP开发curl⽤法(aqiulian),更多PHPcurl⽤法咨询Q:212303635。curl 是使⽤URL语法的传送⽂件⼯具,⽀持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl ⽀持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、⽤户+⼝令证明、⽂件传送恢复、http代理通道和⼤量其他有⽤的技巧。详见参考⼿册
原来php默认并不进⾏此项功能的扩展,但还是有的,只是没有让它⽣效罢了。打开PHP安装⽬录,搜索以下三个⽂件 ssleay32.dll、libeay32.dll和 php_curl.dll,⼀⼀拷贝到系统⽬录下的system32⽂件夹下,修改php.ini⽂件,到;extension= php_curl.dll⾏,去掉前⾯的;号,保存,重启服务器。在站点⽬录下建⽴⼀个PHP⽂件,内容如下
以下关于此函数各项使⽤参数:
bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为⼀个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。
下列选项的值将被作为长整形使⽤(在option参数中指定):
* CURLOPT_INFILESIZE: 当你上传⼀个⽂件到远程站点,这个选项告诉PHP你上传⽂件的⼤⼩。
* CURLOPT_VERBOSE: 如果你想CURL报告每⼀件意外的事情,设置这个选项为⼀个⾮零值。
* CURLOPT_HEADER: 如果你想把⼀个头包含在输出中,设置这个选项为⼀个⾮零值。
* CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显⽰⼀个进程条,设置这个选项为⼀个⾮零值。注意:PHP⾃动设置这个选项为⾮零值,你应该仅仅为了调试的⽬的来改变这个选项。
* CURLOPT_NOBODY: 如果你不想在输出中包含body部分,设置这个选项为⼀个⾮零值。
* CURLOPT_FAILONERROR: 如果你想让PHP在发⽣错误(HTTP代码返回⼤于等于300)时,不显⽰,设置这个选项为⼀⼈⾮零值。默认⾏为是返回⼀个正常页,忽略代码。
* CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为⼀个⾮零值。
* CURLOPT_POST: 如果你想PHP去做⼀个正规的HTTP POST,设置这个选项为⼀个⾮零值。这个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: 传递⼀个形如[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。⽤来获取需要登录的页⾯的例⼦,当前做法是每次或许都登录⼀次,有需要的⼈再做改进了.
摘⼏个从别的⽹站扣过来的例⼦:
echo strip_tags($orders);
echo ”;
curl_close($ch2); 实践证明很稳定:)
例三:
set_time_limit(0);
function _rand() {
$length=26;php好看主页源码
$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";
$HTTP_URL="/";
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,"".$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="ururl/bbs/login.asp?action=chk";
//填⼊论坛的登陆页⾯地址
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER,"www.hxfoods/bbs/login.asp");
//设置,访问页⾯的来源地址
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,'username=→→敢死队→&password=168168'); //分析登陆页⾯,把⽤户名,密码分别对应起来
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="ururl/bbs/savepost.asp";
//这个地址是回复表单⾥⾯action的url地址
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
}
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("www.baidu/");
curl_exec($ch);
curl_close($ch);
curl_version()函数的作⽤是获取curl相关的版本信息,curl_version()函数有⼀个参数,不清楚是做什么的print_r(curl_version())
curl_getinfo()函数的作⽤是获取⼀个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第⼀个参数是curl的资源句柄,第⼆个参数是下⾯⼀些常量:
$ch = curl_init("www.baidu/");
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
Result of SSL certification verification requested by setting CURLOPT_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设置会话参数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。