<?php
$url='Search.jsp';
// disguises the curl using fake headers and a fake user agent.
function disguise_curl($url)
{
$curl = curl_init();
// Setup headers - I used the same headers from Firefox version 2.0.0.6
// below was split up because php.net said the line was too long. :/
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'https://lalpacweb.blackpool.gov.uk/protected/wca/publicRegisterVehicleSearch.jsp');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_COOKIESESSION, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS, 'search.licenceTypeID=34&search.licenceLinkFileID=2&search.vehicleRegNumber=5&publicRegisterVehicle=Search');
$html = curl_exec($curl); // execute the curl command
echo curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl); // close the connection
return $html; // and finally, return $html
}
// uses the function and displays the text off the website
$text = disguise_curl($url);
echo $text;
?>
它返回一個頁面,使用表格填寫,但它並沒有張貼。該curl_getinfo響應我得到的是..
200HTTP/1.1 200 OK雜注:無緩存緩存控制: 無緩存,無店鋪,必重新驗證到期日:星期四,1970年00:00 01一月:00 GMT內容類型:text/html; charset = ISO-8859-1內容 - 語言:en-GB 內容長度:5901日期:Sun,19 Feb 2012 12:24:08 GMT服務器: Apache
任何想法?
感謝您的幫助
看來你的代碼是正確的,所以你應該確保你所要求的字段是正確的,與狀態200的迴應顯示你的要求是正確的,但可能你的領域是不正確的,你可以在服務器上編寫一個測試頁面並使用上面的代碼來測試。 – Sean 2012-02-19 12:44:18
狀態200代碼是否顯示錶單已發佈?或者它會不會迴應這些信息?該表單有兩個提交按鈕,我通過說'publicRegisterVehicle = Search'來指定一個,是正確的嗎? – Tom 2012-02-19 12:49:24
頁面上有2個可能需要設置的隱藏表單域。 _sourcePage和__fp – ben 2012-02-24 19:09:56