最近学curl函数.遇到了cookie的问题.

前一段时间使用CURL处理COOKIE时遇到了难题,今天希望能解决这个东西。

http://www.canbing.com/blog/read.php?entryid=19&page=1&part=1

模拟cookie刷贴实例:

    1. <?php
    2. $ch = curl_init();
    3. //保存该次请求的cookie内容到文件cookie.txt
    4. curl_setopt($ch, CURLOPT_COOKIEJAR, "E:/cookie.txt");
    5. ///要请求的链接,此链接请求后必须会写cookie到客户端(一般这样的链接均为登陆验证页面,可以用httpWatch抓取url和需要post的数据)
    6. curl_setopt($ch, CURLOPT_URL,"http://www.mynit.net/login.php");
    7. curl_setopt($ch, CURLOPT_POST, 1);
    8. curl_setopt($ch, CURLOPT_POSTFIELDS,“xx”)//xx代表要post出去的数据
    9. ob_start();       //开启浏览器缓存
    10. curl_exec ($ch); 
    11. ob_end_clean();   //输出全部内容到浏览器
    12. curl_close ($ch);
    13. unset($ch);
    14. $ch = curl_init();
    15. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    16. //把原先产生的cookie文件,作为这次请求的cookie
    17. curl_setopt($ch, CURLOPT_COOKIEFILE, "E:/cookie.txt");
    18. //此链接为你要做的操作获得验证的链接,比如回复贴子处理页面
    19. curl_setopt($ch, CURLOPT_URL,"http://www.mynit.net/post.php");
    20. curl_setopt($ch, CURLOPT_POST, 1);
    21. curl_setopt($ch, CURLOPT_POSTFIELDS, "xx");//xx代表要post出去的数据
    22. ///执行操作,如刷贴,如果要猛刷的就循环1000次,不够可以加。
    23. $buf2 = curl_exec ($ch);
    24. curl_close ($ch);
    25. echo $buf2;//返回结果
    26. ?>
    <?php    
  1. /* 
  2. #cookie用法 
  3. */   
  4.    
  5. $cookie_jar = tempnam('./tmp','cookie1');    
  6. // login    
  7. $c=curl_init('http://www.nbchem.com/user/login.php?user=yourname&password=pwd&act=1');    
  8. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);    
  9. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_jar);    
  10. curl_exec($c);    
  11. curl_close($c);    
  12.       
  13. $c="http://www.nbchem.com/vip/";    
  14. $c=curl_init($c);    
  15. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);    
  16. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_jar);    
  17. $res=curl_exec($c);    
  18. curl_close($c);    
  19. echo $res;    
  20. ?>   

php curl cookie的使用 curl发送cookie的2种途径
curl的cookie怎么使用?新手都很头疼的,curl的参数太多了,其中cookie部分就涉及了4个。
当然了,手册上明白写的curl的cookie是3个,但是嘛,不是还有个header的参数嘛,里面可以包含cookie.
七巧游戏网(http://7game.net.cn/)的采集是基于curl库的。
curl非常的好用。最主要的是要熟悉curl_setopt的用法。
curl_setopt ($ch, CURLOPT_COOKIE , $cookie );
这里的cookie值要用;分开的,而不是用&。也不需要用urlencode编码,当然了,编码了就更好。
$cookie = "a=b;c=d;name=方世玉";
注意使用这个的时候,不可在 curl_setopt ($ch, CURLOPT_HTTPHEADER , $header );
的$header里包含Cookie参数,否则会重叠,造成cookie不可预见的情况发生。
如下代码是用来分析IE里的cookie的,就是c:/document ...../cookie里的文本


function join_cookie($cook)
{
    foreach( $cook as $k=>$v )
    {
   $d[] =$k."=".$v;
    }
$data = implode(";",$d);
return $data;
}

function pase_cookie($cookFile,$encode=true)
{
$cookie = file_get_contents ( $cookFile );
$citem = explode("*/n",$cookie); //pr($citem);
foreach( $citem as $c )
{
list($ckey,$cvalue) = explode("/n",$c);
if($ckey!='')$cook[$ckey] = $cvalue;
}
return $cook;
//pr($cook);
}

++++++++++++++++++++++++++++++++++++++++


$cookie_jar   =   'cookie.txt ';
$data   =   array( 'mvfAdminMonths '       =>   array( '200706 ', '200707 '),
                            'mvfSiteProvinces '   =>   'Beijing ',  
                            'whichFirst '           =>   'AS ',
                            '__act '                 =>   '__id.22.SeatsQuery.adp.actList ',  
    'submit.x '=>   '28 ',
    'submit.y '=>   '9 ');  
$ch   =   curl_init();  
curl_setopt($ch,   CURLOPT_URL, 'http://toefl.etest.edu.cn/cn/SeatsQuery ');  
curl_setopt($ch,   CURLOPT_POSTFIELDS,$data);  
curl_setopt($ch,   CURLOPT_RETURNTRANSFER,false);  
curl_setopt($ch,   CURLOPT_COOKIEJAR,   $cookie_jar);
echo   curl_exec($ch);
sleep(30);
$data   =   array( 'mvfAdminMonths '       =>   '200706 ',  
'mvfAdminMonths '       =>   '200707 ',
                            'mvfSiteProvinces '   =>   'Beijing ',  
                            'whichFirst '           =>   'AS ',
                            '__act '                 =>   '__id.22.SeatsQuery.adp.actList ',  
    'submit.x '=>   '28 ',
    'submit.y '=>   '9 ');  
$ch2   =   curl_init();  
curl_setopt($ch2,   CURLOPT_URL, 'http://toefl.etest.edu.cn/cn/SeatsQuery ');  
curl_setopt($ch2,   CURLOPT_POSTFIELDS,$data);  
curl_setopt($ch2,   CURLOPT_RETURNTRANSFER,false);  
curl_setopt($ch2,   CURLOPT_COOKIEFILE,   $cookie_jar);  
echo   curl_exec($ch2);
curl_close($ch);  

获取cookie要指定cookie文件位置

类似于这样
curl_setopt($ch,   CURLOPT_COOKIEJAR,   $cookie_jar);
指定获取cookie位置

curl_setopt($ch2,   CURLOPT_COOKIEFILE,   $cookie_jar);  
指定要传送的cookie的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值