代码之家  ›  专栏  ›  技术社区  ›  Rob

使用cURL登录到远程网页后,如何访问另一个网页并将其作为字符串返回?

  •  0
  • Rob  · 技术社区  · 15 年前

    SESSION 并将数据提取为字符串,以便我可以检查网页是否包含特定的字符串。

    我该怎么做呢?

    例如:

    它登录到 http://example.com/login.php

    但登录后,我需要它来访问 http://example.com/site.php?page=news 并以字符串形式返回该页的内容。

    1 回复  |  直到 15 年前
        1
  •  2
  •   timdev    15 年前

    在大多数情况下,这将通过cookie实现,因此您需要指示curl跟踪cookie。

    比如:

    curl_setopt($curl, CURLOPT_COOKIEJAR, '/tmp/cookies');  //where to write cookies received from server
    curl_setopt($curl, CURLOPT_COOKIEFILE, '/tmp/cookies'); //where to read cookies to send in requests.
    

    你应该从那里开始。

    编辑 明目张胆的复制/粘贴示例( from here -用大约20秒的谷歌搜索“php curl login”就可以找到。这看起来是对的:

    <?php 
    $url ="http://login.yahoo.com/config/login?.src=ym&.intl=us&.partner=&.done=http%3A%2F%2Fmail.yahoo.com%2F"; 
    $ch = curl_init();      
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/cookie.txt'); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, "login=emailid&passwd=password&&submit=Sign In"); 
    ob_start();      
    curl_exec ($ch); 
    ob_end_clean();  
    curl_close ($ch); 
    unset($ch); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, "/temp/cookie.txt"); 
    curl_setopt($ch, CURLOPT_URL,"http://us.f515.mail.yahoo.com/ym/login?"); 
    $result = curl_exec ($ch); 
    
    curl_close ($ch); 
    echo $result; 
    
    推荐文章