2014-09-29 286 views
0

多請求我目前正在湊在PHP中使用捲曲這個網站。與捲曲(PHP)

http://wateroffice.ec.gc.ca/report/report_e.html?mode=Table&type=realTime&stn=02HD006&dataType=&startDate=2014-09-22&endDate=2014-09-29&prm1=46&prm2=-1

似乎有需要實際觀察數據之前打一個確認頁面。在確認頁面出現的是,被張貼着

dislcaimer_action的變量後,以/includes/disclaimer.php形式=我同意

我嘗試下面的代碼,但第二個請求似乎總是帶來我回到確認頁面。

$browser = curl_init(); 
curl_setopt($browser, CURLOPT_URL, "http://wateroffice.ec.gc.ca/include/disclaimer.php"); 
curl_setopt($browser ,CURLOPT_RETURNTRANSFER, true); 

curl_setopt($browser, CURLOPT_HEADER, true); 

curl_setopt($browser, CURLOPT_FOLLOWLOCATION, 1); 

$postData = 'disclaimer_action=I Agree'; 

curl_setopt($browser, CURLOPT_POST, count($postData)); 
curl_setopt($browser, CURLOPT_POSTFIELDS, $postData); 

curl_setopt($browser, CURLOPT_URL, "http://wateroffice.ec.gc.ca/report/report_e.html?mode=Table&type=realTime&stn=02HD006&dataType=&startDate=2014-09-22&endDate=2014-09-29&prm1=46&prm2=-1"); 
$output = curl_exec($browser); 

不知道我在做什麼錯。提前致謝!

回答

0

你應該通過POSTFIELDS作爲一個關聯數組,就像使用$_POST['disclaimer_action'],而不是在一個方式。

$postData = array('disclaimer_action' => 'I Agree'); 
curl_setopt($browser, CURLOPT_POSTFIELDS, $postData); 
+0

感謝您的修復,我打算關的例子中,使用爲後數據的標量變量。但是這並沒有解決問題。 – dnaluz 2014-09-29 16:20:13

+0

嗯。當您在瀏覽器中手動執行操作時,點擊「我同意」後,您是否設置了會話? – 2014-09-29 16:22:26

+0

有趣的想法, 貌似有4種餅乾被設置,其中包括一個PHPSESSION點心和餅乾的免責聲明。 – dnaluz 2014-09-29 16:24:23