2013-05-12 49 views
1

我想讓自己成爲一個首頁,僅供我個人使用,而我想要做的是顯示來自不同網站的每天更換幾次的不同信息。即新聞,天氣等。我希望能夠隨時查看我最喜歡的信息,而無需訪問多個頁面。由於許多網站不會在iframe中加載,這是我嘗試的第一件事,所以我想PHP可能會幫助我。使用靜態ID獲取不斷變化的DIV的內容

所以我需要做的是獲得一個DIV的內容,並將其放入我的頁面與PHP。 源頁面上的DIV在服務器上生成,但始終具有相同的ID。

例如:

<div id="nowbox"> 
<a href="http://www.seznam.cz/jsTitleExecute?id=91&h=19331020"> 
<img width="135" height="77" src="http://seznam.cz/favicons/title//009/91-JrAEVc.jpg" alt="" /></a> 
<div class="cont"> <ul> <li> 
<strong><a href="http://www.seznam.cz/jsTitleExecute?id=91&h=19331020">Sledujte dnes od 20.00 koncert Tata Bojs</a></strong> 
<p>Nenechte si ujít tradiční benefiční koncert kapely Tata Bojs. Sledujte představení na Seznam.cz</p> </li> </ul> 
</div> 
</div> 

所以DIV的ID是「nowbox」我需要複製凡在它並把它放在我的網頁。

到目前爲止,我只能夠使用這個

$contents = file_get_contents("http://seznam.cz"); 

查看網頁的全部內容,但我不知道如何剝離一切,只留下必要的核實。

我對PHP不是很有經驗,所以我會很感激任何幫助,越容易理解越好。編輯: THX的答案。基本上我只是想將我作爲示例發佈的代碼發佈到變量中,這樣我就可以在我的頁面上的某處回覆它。問題在於代碼與網站其他部分一樣改變,只有一些事情保持不變,即DIV ID。 絕對不是最優雅的解決方案(即使我知道,但作爲網站是爲我的目的而已,應該沒關係),但我成功設法開始工作的是,我得到了整個頁面:

$contents = file_get_contents("http://seznam.cz"); 

然後計算字符的數量到代碼中特定的唯一位置,並用STRPOS加/減我可以手動計算的靜態字符數。然後我將字符串拆分爲ARRAY,並丟棄我不需要在字符串開始處獲取代碼開頭的部分,然後在代碼結束後使用相同的方法剪切字符串。

回答

1

我無法完全理解你想達到和原因是什麼,但你可以既通過服務器和客戶端做到這一點,首先,客戶端方式:

好吧,你叫什麼爲了提取部分DOM,在客戶端使用javascript + jQuery,您可以非常快速地實現它,只需調用$.load("/mypage #nowbox")函數即可。

這可能在服務器端藏漢使用PHP通過使用任何DOM操作庫來實現,無論是一個是內(DOMDocument)或一個捆綁的更易於使用的庫(其爲位存儲器leakish),simplehtmldom

所以你有它,選擇爲客戶端&服務器的方式來實現,選擇哪一個最適合您的需求。

請注意,任何CSS的裁決將無法通過任何方法,因爲CSS不會被加載到你的dom中。

祝你好運!

1

如果你想這樣做,服務器端,我建議你使用phpquery

require('phpQuery/phpQuery.php');  
$doc = phpQuery::newDocumentFileXHTML('http://seznam.cz'); 
$html = pq('#nowbox')->htmlOuter();