2016-01-30 29 views
0

我想知道如何執行以下操作。 我有一個HTML頁面的這部分代碼:試圖從一個HTML頁面提取信息與PHP

<div id="sportSelect" class="longSelect"> 
       <select name="ctl00$ContentPlaceViewResults$MedalistResultsSearchSmallBlock$ResultsSearchSmallBlock$SportsListing" id="ctl00_ContentPlaceViewResults_MedalistResultsSearchSmallBlock_ResultsSearchSmallBlock_SportsListing" class="dropdownfilter"> 
     <option value="">Choose Sport*</option> 
     <option selected="selected" value="31766">Archery</option> 
     <option value="32588">Athletics</option> 
     <option value="31753">Badminton</option> 
     <option value="126990">Baseball</option> 
     <option value="31341">Basketball</option> 
</div> 

現在我實現了這個代碼:

<html> 

<body> 

<?php 
// Include the library 
include('simple_html_dom.php'); 

$html=file_get_html('http://www.olympic.org/olympic-results/london-2012/archery'); 
foreach($html->find('div') as $element) { 
    if ($element->id == 'sportSelect') 
    { 
     $v = $element->find('option[selected]', 0)->value . '</br>'; 
    } 
} 

echo $v 

?> 
</body> 
</html> 

這是確定的,它的作品,因爲我得到的值31766(代碼corrisponding射箭)。 其實我想在V變量獲得「射箭」,而不是31766.

+0

我不知道你的'simple_html_dom'庫。但我想它與'SimpleXML'類似。通過獲得'$ element-> find('option [selected]',0) - > value',你可以得到表單的'value'屬性。你想要的是第一個文本孩子。搜索您的庫文檔以獲取第一個孩子或節點的文本內容。 – Mat

回答

1

我從http://simplehtmldom.sourceforge.net/manual.htm看到的是,你應該使用類似$element->find('option[selected]', 0)->plaintext的東西來獲取節點的文本內容,而不是它的價值屬性。

發現新語言/庫時,我可以給你的最好的提示是閱讀文檔。