加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

通过curl登录访问的PHP代码

发布时间:2020-05-25 06:57:50 所属栏目:PHP 来源:互联网
导读:通过curl登录访问的PHP代码

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

<?php


$data='[emailprotected]&password=1q2w3e&remember=1';
$curlobj=curl_init();			//初始化
curl_setopt($curlobj,CURLOPT_URL,"http://www.imooc.com/user/login");		//设置访问网页的URL
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,true);			//执行之后不直接打印出来

//Cookie相关设置,这部分设置需要在所有会话开始之前设置
date_default_timezone_set('PRC');//使用Cookie时,必须先设置时区
curl_setopt($curlobj,CURLOPT_COOKIESESSION,TRUE);
curl_setopt($curlobj,CURLOPT_COOKIEJAR,'cookie.txt');//保存
curl_setopt($curlobj,CURLOPT_COOKIEFILE,'cookie.txt');//读取
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_FOLLOWLOCATION,1);//这样能够让cURL支持页面链接跳转
curl_setopt($curlobj,CURLOPT_COOKIE,session_name().'='.session_id());

curl_setopt($curlobj,CURLOPT_POST,1);
curl_setopt($curlobj,CURLOPT_POSTFIELDS,$data);
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8",
	"Content-length:".strlen($data)
	));
curl_exec($curlobj);	//执行
curl_setopt($curlobj,"http://www.imooc.com/space/index");
curl_setopt($curlobj,0);
curl_setopt($curlobj,array("Content-type:text/xml"
	));
$output=curl_exec($curlobj);	//执行
curl_close($curlobj);			//关闭cURL
echo$output;
?>
CURLOPT_COOKIESESSION
<?php

$data='[emailprotected]&password=123456qwe&remember=1';
$curlobj=curl_init();			//初始化
curl_setopt($curlobj,session_name().'='.session_id());
//注释掉这行,因为这个设置必须关闭安全模式以及关闭open_basedir,对服务器安全不利
//curl_setopt($curlobj,1);

curl_setopt($curlobj,array("Content-type:text/xml"
	));
$output=curl_redir_exec($curlobj);	//执行
curl_close($curlobj);			//关闭cURL
echo$output;

/**
*自定义实现页面链接跳转抓取
*/
functioncurl_redir_exec($ch,$debug="")
{
static$curl_loops=0;
static$curl_max_loops=20;

if($curl_loops++>=$curl_max_loops)
{
$curl_loops=0;
returnFALSE;
}
curl_setopt($ch,true);//开启header才能够抓取到重定向到的新URL
curl_setopt($ch,true);
$data=curl_exec($ch);
//分割返回的内容
$h_len=curl_getinfo($ch,CURLINFO_HEADER_SIZE);
$header=substr($data,$h_len);
$data=substr($data,$h_len-1);

$http_code=curl_getinfo($ch,CURLINFO_HTTP_CODE);
if($http_code==301||$http_code==302){
$matches=array();
preg_match('/Location:(.*?)n/',$header,$matches);
$url=@parse_url(trim(array_pop($matches)));
//print_r($url);
if(!$url)
{
//couldn'tprocesstheurltoredirectto
$curl_loops=0;
return$data;
}
$last_url=parse_url(curl_getinfo($ch,CURLINFO_EFFECTIVE_URL));
if(!isset($url['scheme']))
$url['scheme']=$last_url['scheme'];
if(!isset($url['host']))
$url['host']=$last_url['host'];
if(!isset($url['path']))
$url['path']=$last_url['path'];

$new_url=$url['scheme'].'://'.$url['host'].$url['path'].(isset($url['query'])?'?'.$url['query']:'');
curl_setopt($ch,$new_url);

returncurl_redir_exec($ch);
}else{
$curl_loops=0;
return$data;
}
}
?>

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读