设置通过curl登录访问的php代码

curl_init  时间:2021-04-19  阅读:()

通过curl登录访问的PHP代码

$data=‘username=zjzhoufy@126.com pas sword=1 q2w3e remember=1’ ;

$curlobj=curl_in it(); //初始化curl_s etopt($curlobj,CURLOPT_URL, http://www.imooc.c om/us er/login //设置访问网页的URLc url_s etopt($c urlobj,CURLOP T_RETURNTRANSFER,true); //执行之后不直接打印出来

//Cookie相关设置这部分设置需要在所有会话开始之前设置date_default_timezone_set(‘PRC’);//使用Cookie时必须先设置时区curl_s etopt($curlobj,CURLOPT_COO KI ESES SION,TRUE);curl_s etopt($curlobj,CURLOPT_COO KI EJAR, ’c ookie.txt’);//保存curl_s etopt($curlobj,CURLOPT_COO KI EFILE, ’c ookie.txt’);//读取c url_s etopt($c urlobj,CURLOPT_HEADER,0);curl_s etopt($curlobj,CURLOPT_FOLLOWLOCATION,1);//这样能够让cURL支持页面链接跳转curl_setopt($curlobj,CURLOPT_COOKI E,ses sion_name(). ’=‘ .session_id());curl_s etopt($curlobj,CURLOPT_POST,1);curl_s etopt($curlobj,CURLOPT_POSTFIELDS,$data);curl_s etopt($curlobj,CURLOPT_HTTPHEADER,array( applic ation/x-www-form-urlenc oded;chars et=utf-8,

Content-length: .s trlen($data)

));c url_exec($c urlobj); //执行curl_s etopt($curlobj,CURLOPT_URL,http://www.imooc.c om/spac e/indexcurl_s etopt($curlobj,CURLOPT_POST,0);

c url_s etopt($c urlobj,CURLOP T_HT TPHEADER,array(Content-type:text/xml

));

$output=c url_exec($c urlobj); //执行curl_c los e($curlobj); //关闭cURLec ho$output;

?

如上代码并不完美我们应该把c ookie存到缓存中不应该持久化并且这样的持久化只能是单用户访问才行。

所以其实我们只要设置

CURLOPT_COOKI ESES SION

如下即可

?p hp

$data=‘username=demo_demo@126.c om pas sword=123456qwe remember=1’ ;

$curlobj=curl_in it(); //初始化curl_s etopt($curlobj,CURLOPT_URL, http://www.imooc.c om/us er/log in //设置访问网页的URLc url_s etopt($c urlobj,CURLOP T_RETURNTRANSFER,true); //执行之后不直接打印出来

//Cookie相关设置这部分设置需要在所有会话开始之前设置date_default_timezone_set(‘PRC’);//使用Cookie时必须先设置时区curl_s etopt($curlobj,CURLOPT_COO KI ESES SION,TRUE);

c url_s etopt($c urlobj,CURLOPT_HEADER,0);curl_setopt($curlobj,CURLOPT_COOKI E,ses sion_name(). ’=‘ .session_id());

//注释掉这行因为这个设置必须关闭安全模式以及关闭open_bas edir对服务器安全不利

//curl_s etopt($curlobj,CURLOPT_FOLLOWLOCATION,1);curl_s etopt($curlobj,CURLOPT_POST,1);curl_s etopt($curlobj,CURLOPT_P OSTFIELDS,$data);curl_s etopt($curlobj,CURLOPT_HTTPHEADER,array( applic ation/x-www-form-urlenc oded;chars et=utf-8,

Content-length: .s trlen($data)

));c url_exec($c urlobj); //执行curl_s etopt($curlobj,CURLOPT_URL,http://www.imooc.c om/spac e/indexcurl_s etopt($curlobj,CURLOPT_POST,0);c url_s etopt($c urlobj,CURLOP T_HT TPHEADE R,array(Content-type:text/xml

));

$output=c url_redir_exec($c urlobj); //执行curl_c los e($curlobj); //关闭cURLec ho$output;

*自定义实现页面链接跳转抓取

*/func tioncurl_redir_exec($ch,$debug=)

{

static$curl_loops=0;static$curl_max_loops=20;if($curl_loops++=$curl_max_loops)

{

$curl_loops=0;r eturnFALS E;

}c url_s etopt($c h,CURLOPT_HEAD ER,true);//开启header才能够抓取到重定向到的新URLc url_s etopt($c h,CURLOPT_RET URNTRANSF ER,true);

$data=curl_exec($ch);

//分割返回的内容

$h_len=c url_get info($c h,CURLINF O_HEADER_S IZE);

$header=substr($data,0,$h_len);

$data=substr($data,$h_len-1);

$http_c ode=c url_getinfo($c h,CURLINF O_HT TP_CODE);if($http_c o de==301| |$http_c o de==302){

$matches=array();preg_match(‘/Location:(.*?)\n/’ ,$header,$matches);

$url=@pars e_url(trim(array_pop($matc hes)));

//p r int_r($ur l);if(!$ur l)

{

//c ouldn’tproc esstheurltoredirec tto

$curl_loops=0;r eturn$data;

}

$last_url=pars e_url(curl_getinfo($c h,CURLINFO_EFFE CTIVE_URL));if(!is s et($url[‘sc heme’]))

$url[‘scheme’]=$last_url[‘scheme’];if(!is s et($url[‘hos t’]))

$url[‘host’]=$last_url[‘host’];if(!is s et($url[‘p ath’]))

$ur l[‘p ath’]=$las t_ur l[‘p ath’];

$new_url=$url[‘sc heme’]. ’ ://’ .$url[‘hos t’].$url[‘p ath’].(is s et($url[‘query’])?’?’.$url[‘query’]:’’);c url_s etopt($c h,CURLOPT_URL,$new_url);returnc url_redir_exec($c h);

}els e{

$curl_loops=0;r eturn$data;

}

}

?

bgpto:独立服务器夏季促销,日本机器6.5折、新加坡7.5折,20M带宽,低至$93/月

bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...

Friendhosting(月1.35欧元),不限流量,9机房可选

今天9月10日是教师节,我们今天有没有让孩子带礼物和花送给老师?我们这边不允许带礼物进学校,直接有校长在门口遇到有带礼物的直接拦截下来。今天有看到Friendhosting最近推出了教师节优惠,VPS全场45折,全球多机房可选,有需要的可以看看。Friendhosting是一家成立于2009年的保加利亚主机商,主要提供销售VPS和独立服务器出租业务,数据中心分布在:荷兰、保加利亚、立陶宛、捷克、乌...

hostio荷兰10Gbps带宽,10Gbps带宽,€5/月,最低配2G内存+2核+5T流量

成立于2006年的荷兰Access2.IT Group B.V.(可查:VAT: NL853006404B01,CoC: 58365400) 一直运作着主机周边的业务,当前正在对荷兰的高性能AMD平台的VPS进行5折优惠,所有VPS直接砍一半。自有AS208258,vps母鸡配置为Supermicro 1024US-TRT 1U,2*AMD Epyc 7452(64核128线程),16条32G D...

curl_init为你推荐
中南财经政法大学知识产权研究中心"2014年全国民营企业招聘会现场A区域企业信息",,,,speakingphp计划ipad孩子apple支持ipad支持ipadApplicationsios5css3圆角如何用CSS实现圆角矩形?win10445端口win7系统不能被telnet端口号,端口、服务什么全都开了
fc2最新域名 网站域名备案 中文域名交易中心 荣耀欧洲 主机测评网 isatap 宕机监控 大容量存储 qingyun 工作站服务器 php空间购买 华为云服务登录 跟踪路由命令 web服务器是什么 空间登入 网购分享 英国伦敦 photobucket 杭州电信宽带优惠 稳定空间 更多