设置通过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;

}

}

?

VinaHost,越南vps,国内延时100MS;不限流量100Mbps

vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...

RAKsmart(年79元),云服务器年付套餐汇总 - 香港 美国 日本云服务器

RAKsmart 商家从原本只有专注于独立服务器后看到产品线比较单薄,后来陆续有增加站群服务器、高防服务器、VPS主机,以及现在也有在新增云服务器、裸机云服务器等等。机房也有增加到拥有洛杉矶、圣何塞、日本、韩国、中国香港等多个机房。在年前也有介绍到RAKsmart商家有提供年付129元的云服务器套餐,年后我们看到居然再次刷新年付云服务器低价格。我们看到云服务器低至年79元,如果有需要便宜云服务器的...

iON Cloud:新加坡cn2 gia vps/1核/2G内存/25G SSD/250G流量/10M带宽,$35/月

iON Cloud怎么样?iON Cloud升级了新加坡CN2 VPS的带宽和流量最低配的原先带宽5M现在升级为10M,流量也从原先的150G升级为250G。注意,流量也仅计算出站方向。iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠...

curl_init为你推荐
交换机route支持ipad支持ipad支持ipad支持ipad支持ipadxp如何关闭445端口请大家帮帮忙,怎样关闭135和445端口?css3圆角在HTML里如何实现圆角矩形?win10关闭445端口win10怎么关闭445的最新相关信息itunes备份如何用iTunes备份iPhone
便宜域名 缓存服务器 512au godaddy 免费个人博客 typecho 网站被封 网通ip howfile 国外免费全能空间 web服务器的架设 服务器维护方案 域名评估 网站在线扫描 数据库空间 石家庄服务器托管 西安主机 畅行云 深圳域名 cdn加速技术 更多