1、确定登录参数并构造
2、指定cookie存储文件路径
3、使用第二步生成的cookie文件请求登录
//cookie 存放路径
$cookiePath = '/usr/local/nginx/html/cookie_test/caiji_jt';
//模拟登录
if(!file_exists($cookiePath)) {
echo "登录__". PHP_EOL;
$LoginData= curl_post('https://www.jtgloble.com/user.php', $loginData, $cookiePath);
} else {
echo "已登录__". PHP_EOL;
}
function curl_post($url, $data = [], $cookie = false)
{
// 初始化
$ch = curl_init();
// 设置post方式提交
curl_setopt($ch, CURLOPT_POST, 1);
// 设置头文件的信息作为数据流输出
curl_setopt($ch, CURLOPT_HEADER, 0);
// 是否要求返回数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置抓取的url
curl_setopt($ch, CURLOPT_URL, $url);
// 提交的数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// 是否检测服务器的证书是否由正规浏览器认证过的授权CA颁发的
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
if($cookie !== false) {
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); //设置cookie信息保存在指定的文件夹中
}
// 执行命令
$result = curl_exec($ch);
// 关闭URL请求(释放句柄)
curl_close($ch);
return $result;
}
$contents = $mMyDom->get_myContent($url, $cookiePath);
public function get_myContent($url, $cookiePath)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiePath);
$contents = curl_exec($ch);
curl_close($ch);
return $contents;
}