2011-12-01 104 views
2

從我的一個服務器頁面的HTML代碼中,我需要解決放置在另一個遠程服務器上的數據庫上特定項目的搜索問題,這個服務器並非我自己的。如何從遠程服務器收集HTML源響應?

執行我的請求,搜索類型的示例:http://www.remoteserver.com/items/search.php?search_size=XXL

遠程服務器提供給我 - 作爲客戶端 - 顯示頁面與符合我搜索標準的若干項的響應。

我不希望顯示此頁面。我想要的是將字符串(或本地文件)收集到遠程服務器HTML響應的全部內容(當我們在IE瀏覽器客戶端中單擊「查看源代碼」時我們可以訪問的代碼)。如果我收集數據(它可以很容易地達到50000字節),然後我可以篩選我感興趣的那個(子字符串),並將一個新的請求彙編到遠程服務器,以便只有一個特定的項目提供的響應。

有沒有什麼方法可以讓我從遠程服務器使用Javascript或PHP提供的響應中獲取HTML,並且避免在瀏覽器本身顯示響應?

我希望我沒有混淆你的想法...... 感謝您提供的任何幫助。

+1

您可以使用['file_get_contents'](http://php.net/file_get_contents)或['curl'](http://php.net/curl)或[ 'HT tp'](http://php.net/http)擴展名,用於從URL中檢索。 – mario

+0

你可以發送一個ajax請求到'search.php'腳本,然後檢查響應? – Cyclonecode

+0

可能與[使用CURL的file_get_contents()等效)?(http://stackoverflow.com/questions/6595041/equivalent-of-file-get-contents-with-curl) – mario

回答

6

作爲@mario提到,有幾種不同的方式來做到這一點。

使用file_get_contents()

$txt = file_get_contents('http://www.example.com/'); 
echo $txt; 

使用PHP的捲曲功能:

$url = 'http://www.mysite.com'; 
$ch = curl_init($url); 

// Tell curl_exec to return the text instead of sending it to STDOUT 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

// Don't include return header in output 
curl_setopt($ch, CURLOPT_HEADER, 0); 

$txt = curl_exec($ch); 
curl_close($ch); 

echo $txt; 

捲曲可能是最穩健的選擇,因爲你有過確切的請求參數和可能性錯誤處理更多的控制選項當事情不按計劃進行時

+0

謝謝,我從來沒有使用過此功能。很高興知道我可以依靠這裏的一些人幫助一個非程序員,當他們被困住時。 – GoldenDays

+1

每個人都曾經有過,我們中的大多數人(尤其是我!)每天仍然學習新東西 – rdlowrey

相關問題