我想要實現的是:如何向使用PHP的網頁發出請求?
一號通我要查詢一個像谷歌的頁面,但沒有填充它的搜索手動提交 2階我想要得到的結果,並將其保存到數據庫
我看到C#在這裏
http://www.farooqazam.net/c-sharp-auto-click-button-and-auto-fill-form/comment-page-1/#comment-27256
但我想用PHP做這樣的一個例子,你能幫助我嗎?
感謝
我想要實現的是:如何向使用PHP的網頁發出請求?
一號通我要查詢一個像谷歌的頁面,但沒有填充它的搜索手動提交 2階我想要得到的結果,並將其保存到數據庫
我看到C#在這裏
http://www.farooqazam.net/c-sharp-auto-click-button-and-auto-fill-form/comment-page-1/#comment-27256
但我想用PHP做這樣的一個例子,你能幫助我嗎?
感謝
您應該使用cURL這樣做,這不僅是因爲它比file_get_contents的way faster,還因爲它具有更多功能。使用它的另一個原因是,正如Xeoncross在評論中正確提到的那樣,出於安全原因,您的虛擬主機可能會禁用file_get_contents。
一個基本的例子將是這樣一個:
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, 'http://example.com');
curl_exec($curl_handle); // Execute the request
curl_close($curl_handle);
如果你需要從請求返回的數據,你需要指定CURLOPT_RETURNTRANSFER
選項:
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, 'http://example.com');
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); // Fetch the contents too
$html = curl_exec($curl_handle); // Execute the request
curl_close($curl_handle);
有噸的捲曲選項例如,您可以設置請求超時時間:
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); // 2 second timeout
僅供參考所有選項均參見curl_setopt()參考。
$html = file_get_contents('http://example.com');
是你會得到最簡單的版本。
<?php
$r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
try {
$r->send();
if ($r->getResponseCode() == 200) {
file_put_contents('local.rss', $r->getResponseBody());
}
} catch (HttpException $ex) {
echo $ex;
}
?>
從php manual ...
您可以使用PHP CUrl,與您訪問網站的詳細manupulations!
您甚至可以在您訪問的網站上執行獲取和發佈內容,或者使用來自不同網站的服務(以防網站提供服務!)。
如果你找到你想要填補了遠程頁面(谷歌)的字段(Q)的名稱,你可以通過使用GET語法填充:
http://www.google.com/?q=hello
-1這與請求來自PHP的請求有什麼關係? – fresskoma
@ x3ro它與他發佈的C#鏈接有關。 OP似乎在問兩個不同的問題。第一個問題是如何在不輸入搜索框的情況下查詢Google。 – abarrington
啊,我的壞,對不起。我以爲他已經認識到了這一點,現在正在尋求一種以編程方式實現這一點的方法。不得不編輯答案以刪除downvote;) – fresskoma
你有什麼這麼遠嗎? – JJJ
我什麼也沒有,我還在尋找 – Elias