猿问

使用 curl 登录并多次移动到另一个页面

我正在尝试登录到一个网站并重定向到数组中声明的页面。我成功登录,我得到了数组中的第一个网址。但是问题是,当我第二次循环通过代码时,我遇到了错误。


代码:


$url = 'https://url/signin';

  $ch = curl_init($url);


  $data = [

    "e_mail" => "email@",

    "password" => "123456"

  ];


  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // allow redirections

  curl_setopt($ch, CURLOPT_POST, true); // we are making post request

  curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // 

  curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // COOKIEEjAR To save data for cookies created for login process

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // TRUE means dont just echo output the data instead we can store the request response in some variaable


  $result = curl_exec($ch);

  $urls_to_loop = array('url1', 'url2');


foreach ($urls_to_loop as $key => $url) {

          curl_setopt($ch, CURLOPT_URL, $url);

          $exec = curl_exec($ch);


          // echo($exec);

          curl_close($ch);// close login CURL resource, and free up system resources


          $html = new simple_html_dom();

          $html->load($exec);

  $links = [];

  foreach($html->find('link') as $element){

    if($element->href[-1] === '4'){

      // check if url is not in the array

      if(!in_array($element->href, $links)){

        array_push($links, $element->href);

      }

    } 

  }


}//END foreach

这是错误:


警告:curl_setopt(): 提供的资源不是第 263 行 C:\xampp\htdocs\web\index.php中有效的 cURL 句柄资源


警告:curl_exec(): 提供的资源不是第 264 行 C:\xampp\htdocs\web\index.php中有效的 cURL 句柄资源


警告:curl_close(): 提供的资源不是第 267 行 C:\xampp\htdocs\web\index.php中有效的 cURL 句柄资源


警告:curl_setopt(): 提供的资源不是第 263 行 C:\xampp\htdocs\web\index.php中有效的 cURL 句柄资源


波斯汪
浏览 84回答 1
1回答

德玛西亚99

您正在循环期间关闭处理程序。curl_close($ch);将该行移到脚本的末尾。
随时随地看视频慕课网APP
我要回答