php中模拟cookie或者session登录,还要用到swoole哦。直接上代码吧:

  1. <?php
  2. $funcMap = array('methodOne' , 'methodTwo' ,'methodThree' );
  3. $worker_num = 3;//创建的进程数
  4. for($i = 0; $i < $worker_num; $i++){
  5. // $process = new swoole_process($funcMap[$i]); //也可以这样子用。直接调funcMap里的函数
  6. $process = new swoole_process('_curl');
  7. $pid = $process->start();
  8. // sleep(2);
  9. }
  10. while(1){
  11. $ret = swoole_process::wait();
  12. if ($ret){// $ret 是个数组 code是进程退出状态码,
  13. $pid = $ret['pid'];
  14. echo PHP_EOL."Worker Exit, PID=" . $pid . PHP_EOL;
  15. }else{
  16. break;
  17. }
  18. }
  19. // function methodOne(swoole_process $worker){// 第一个处理
  20. // _curl();
  21. // echo $worker->callback .PHP_EOL;
  22. // }
  23. // function methodTwo(swoole_process $worker){// 第二个处理
  24. // _curl();
  25. // echo $worker->callback .PHP_EOL;
  26. // }
  27. // function methodThree(swoole_process $worker){// 第三个处理
  28. // _curl();
  29. // echo $worker->callback .PHP_EOL;
  30. // }
  31. function _curl()
  32. {
  33. $url = "http://www.act.com/index.php?r=raffleyun%2Fplay&id=272&biz=1&";
  34. $field_data = "id=272&biz=1&r=raffleyun/play";
  35. $ch = curl_init();
  36. curl_setopt($ch,CURLOPT_URL, $url);
  37. session_start();
  38. $strCookie = "PHPSESSID=adq4qgrucr1r6v8dl7no4gk0k2; _csrf=4b0c2ce346509726eb32cfab14dc9a633847e7374f295628e3866875c42ab0caa%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22OIM_-T2V5TDD7GzAebwdRDuFy6__iI7I%22%3B%7D; Hm_lvt_566b7c10bf5c1f3e170f9866814cfcd5=1492413159; Hm_lpvt_566b7c10bf5c1f3e170f9866814cfcd5=1492667177";
  39. session_write_close();
  40. curl_setopt($ch, CURLOPT_POST, 1);
  41. curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36" );
  42. curl_setopt ($ch, CURLOPT_POSTFIELDS, $field_data);
  43. curl_setopt($ch, CURLOPT_COOKIE, $strCookie);
  44. $return = curl_exec($ch);
  45. curl_close($ch);
  46. var_dump($return);
  47. }

分类: web

标签:   php