2011-11-03 80 views
0

我想我不明白。我試着解析某些HTML頁面:使用simple_html_dom類,實際上明文函數返回的是什麼?

<select name="sel"> 
    <option value="val0">-please select me-</option> 
    <option value="val1">some selection</option> 
</select> 

IM的Simple_html_dom類:

foreach($html->find('select') as $s) { 
    if ($html->find('option',1) != false) { 
     $tempoption = $html->find('option',1)->plaintext; 
     echo $tempoption; //shows 'some selection' 
    } 
} 

但是,這時如果我只是用這個行:

$value=''; 
if ($tempoption == 'some selection') 
    $value='79'; 
echo $value; //doesn't shows anything (empty variable?) 

//or this one : 
if (strcmp($tempoption, 'some selection')) 
    $value='79'; 
echo $value; //Nope. 

回答

0

我嘗試了代碼就像你在那裏和$value DID結束了79.但我認爲你必須有更多的HTML比那小小的片段。在你的代碼中,對我來說最突出的事情是你將條件包裝在一個循環中,通過HTML的所有選擇,但是你沒有使用從循環中獲得的單個選擇元素,所以foreach循環似乎毫無意義..

看一看這樣的:

foreach($html->find('select option') as $o) 
{ 
    $o_label = $o->plaintext; 
    if($o_label=='some selection') echo 'PERFECT MATCH: '.$o_label."\n"; 
    else if(stripos($o_label, 'some selection')!==false) echo 'LOOSE MATCH: '.$o_label."\n"; 
    else echo 'DOES NOT MATCH: '.$o_label."\n"; 
} 


當給定的HTML:

<select name="sel"> 
    <option value="val0">-please select me-</option> 
    <option value="val1">1 some selection</option> 
    <option value="val1">This does not match</option> 
    <option value="val1">some selection</option> 
    <option value="val1">Another non-matching label</option> 
    <option value="val1">some selection 3</option> 
    <option value="val1">One more that does not match</option> 
    <option value="val1">4 SoME sElEcTIon 4</option> 
</select> 

輸出將爲:

DOES NOT MATCH: -please select me- 
LOOSE MATCH: 1 some selection 
DOES NOT MATCH: This does not match 
PERFECT MATCH: some selection 
DOES NOT MATCH: Another non-matching label 
LOOSE MATCH: some selection 3 
DOES NOT MATCH: One more that does not match 
LOOSE MATCH: 4 SoME sElEcTIon 4 
相關問題