检查远程网页是否已更改

时间:2013-06-20 04:26:41

标签: php curl

我的PHP脚本执行以下操作

  1. 使用CURL以登录名和密码登录远程服务器,效果很好。 echo $result;显示已登录的页面内容。
  2. 其次,它的作用是访问内部页面(需要一个人登录)并检查页面是否被远程更改(更新)或不使用CURL
  3. 我在"Access denied"中收到的错误是Part 2 of the code below,我认为Cookie在整个会话期间都没有持续存在?这是问题,我应该在代码中做些什么改变。

    <?
    //Part 1
    $username="username; 
    $password="pwd"; 
    $url="http://abc.com/home?q=login&destination=filmmaker%2Fhome";
    $cookie="cookie.txt"; 
    
    $postdata = "name=".$username."&pass=".$password."&form_id=user_login&edit-name=".$username."&remember_me=1"; 
    
    
    
    $ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
    curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
    curl_setopt ($ch, CURLOPT_REFERER, $url); 
    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    $result = curl_exec ($ch); 
    
    echo $result;  
    
    //Part 2
    
    $curl = curl_init("http://abc.com/filmmaker/home");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_NOBODY, true);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FILETIME, true);
    $result = curl_exec($curl);
    
    if ($result === false) {
        die (curl_error($curl)); 
    }
    
    $timestamp = curl_getinfo($curl, CURLINFO_FILETIME);
    if ($timestamp != -1) { //otherwise unknown
        echo date("Y-m-d H:i:s", $timestamp); //etc
    }
    curl_close($ch);
    
    
    ?>
    

1 个答案:

答案 0 :(得分:1)

第2部分需要:

curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);

这将发送第1部分中CURLOPT_COOKIEJAR选项保存的cookie。