zoukankan      html  css  js  c++  java
  • 使用curl进行模拟登录

      1. <?php
      2. $cookie_path = './'; //设置cookie保存路径
      3.  
      4. //-----登录要提交的表单数据---------------
      5. $vars['username'] = '张三';
      6. $vars['pwd'] = '123';
      7. //-------------------------------------
      8. $method_post = true;
      9. //登录提交的url地址(表单中的action的绝对地址)
      10. $url = 'http://****.com/login';
      11. //----------------------------
      12.  
      13. $ch = curl_init();
      14. $params[CURLOPT_URL] = $url; //请求url地址
      15. $params[CURLOPT_HEADER] = true; //是否返回响应头信息
      16. $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
      17. $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
      18. $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

      19. $postfields = '';
      20. foreach ($vars as $key => $value){
      21. $postfields .= urlencode($key) . '=' . urlencode($value) . '&';
      22. }

      23. $params[CURLOPT_POST] = true;
      24. $params[CURLOPT_POSTFIELDS] = $postfields;

      25. //判断是否有cookie,有的话直接使用
      26. if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar'])))
      27. {
      28. $params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie
      29. }
      30. else
      31. {
      32. $cookie_jar = tempnam($cookie_path, 'cookie'); //产生一个cookie文件
      33. $params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
      34. setcookie('cookie_jar', $cookie_jar); //保存cookie路径
      35. }
      36. curl_setopt_array($ch, $params); //传入curl参数
      37. $content = curl_exec($ch); //执行
      38.  
      39. echo '
      40. ';
      41. echo $content; //输出登录结果
      42. /*
      43. //---------登录成功后再次请求其他地址,如果有多个可以循环执行---------
      44. echo '
      45. ';
      46. $nexturl = 'http://****.com/test';
      47. $params[CURLOPT_URL] = $nexturl;
      48. $params[CURLOPT_POSTFIELDS] = '';
      49. curl_setopt_array($ch, $params); //传入curl参数
      50. $content = curl_exec($ch); //执行
      51. echo $content; //输出请求结果
      52. //-------------------------------------------------
      53. */
      54. curl_close($ch); //关闭连接

      55. ?>
  • 相关阅读:
    【Scala】看代码,初步了解Apply方法
    【Scala】通过简洁代码搞明白伴生关系、主构造器和辅助构造器的关系
    【Scala】关于集合的各种知识点
    【Scala】新手入门,基础语法概览
    C#中的异步多线程13 回调
    C#中的异步多线程12 轮询
    C#中的异步多线程11 等待直到结束
    C#中的异步多线程10 BackgroundWorker类
    C#中的异步多线程9 完整的GUI示例
    C#中的异步多线程8 Task.Yield
  • 原文地址:https://www.cnblogs.com/mhj66/p/6391746.html
Copyright © 2011-2022 走看看