POST

【原创】PHP curl登录获取cookie 并提交POST数据或获取数据

请注意,本文编写于 264 天前,最后修改于 166 天前,其中某些信息可能已经过时。

需求登录某网站,并提交数据。解决方案curl登录保存cookie,然后提交需要提交的数据

/**
 * 登录获取cookie并提交数据
 * @author Reaper <369994633@qq.com>
 * @param  string        $login_url 登录URL 
 * @param  string|array  $login_data 登录账号密码
 * @param  string        $binding_url 获取cookie后要提交数据的地址
 * @param  string|array  $binding_data 获取cookie后要提交的数据
 * @return string
 */
public function bt_addlink($login_url,$login_data,$binding_url,$binding_data){ 
    $login_val = curl_init($login_url);
    curl_setopt($login_val,CURLOPT_HEADER,1);
    curl_setopt($login_val,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($login_val,CURLOPT_POSTFIELDS,$login_data);
    $login_go = curl_exec($login_val);
    preg_match('/Set-Cookie:(.*);/iU',$login_go,$cookie);
    curl_close($login_val);
    $binding_val = curl_init($binding_url);
    curl_setopt($binding_val,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($binding_val,CURLOPT_POSTFIELDS,$binding_data);
    curl_setopt($binding_val,CURLOPT_COOKIE,$cookie['1']);  
    $binding_go = curl_exec($binding_val);
    curl_close($binding_val); 
    return $binding_go;
} 

原创文章 未经许可 禁止搬运!

← 上一篇 下一篇 →
Comments

添加新评论

已有 7 条评论

微风 2018-07-14

想知道return $url; 的$url是什么。。。应该是$binding_go吧

Reaper 2018-07-14
@微风

好像。。。是我打错了

微风 2018-07-14
@Reaper

尼玛,你又改错了,不是$binding_val,是$binding_go。

Reaper 2018-07-14
@微风

这不是骗你多来评论一下么

2018-06-01

用正则获取cookie如果可以把cookie保存下来就更好了

Reaper 2018-06-01
@寒

这个就要你们自己来了,我没这个需求 HH ,保存到seesion也好 存文件也可以这个很简单

筱神 2018-05-30

支持支持OωO