/**
* 模拟登录
*/
//初始化变量
$cookie_file = "tmp.cookie";
$login_url = "";
$verify_code_url = "";
echo "正在获取COOKIE...\n";
$curlj = curl_init();
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
$contents = curl_exec($curl);
curl_close($curl);
echo "COOKIE获取完成,正在取验证码...\n";
//取出验证码
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
$img = curl_exec($curl);
$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "休眠完成,开始取验证码...\n";
$code = file_get_contents("code.txt");
echo "验证码成功取出:$code\n";
echo "正在准备模拟登录...\n";
$post = "username=mabenpwd=hahahahaverifycode=$code";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$result=curl_exec($curl);
//这一块根据自己抓包获取到的网站上的数据来做判断
if(substr_count($result,"登录成功")){
echo "登录成功\n";
}else{
echo "登录失败\n";
exit;
}
①.
②.
③.
④.
⑤.
⑥.
⑦.
⑧.
⑨.
①.0
①.1
②.0
②.1
③.0
③.1
④.0
④.1
⑤.0
⑤.1
⑥.0
⑥.1
⑦.0
⑦.1
public function curl($url, $postFields = null)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($this-readTimeout) {
curl_setopt($ch, CURLOPT_TIMEOUT, $this-readTimeout);
if ($this-connectTimeout) {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this-connectTimeout);
//https 请求
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
if (is_array($postFields) 0 count($postFields))
$postBodyString = "";
$postMultipart = false;
foreach ($postFields as $k = $v)
if("@" != substr($v, 0, 1))//判断是不是文件上传
$postBodyString .= "$k=" . urlencode($v) . "";
else//文件上传用multipart/form-data,否则用www-form-urlencoded
$postMultipart = true;
泻药
PHP CURL超时设置分两种,毫秒跟秒都是可以的.
curl普通秒级超时:
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
curl普通秒级超时使用:
curl如果需要进行毫秒超时,需要增加:
curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);
//或者
curl_setopt ( $ch, CURLOPT_NOSIGNAL,true);//支持毫秒级别超时设置
以上就是土嘎嘎小编为大家整理的关于curltimeoutphp的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!