simple_html_dom类,实际上明文函数返回的是什么?
问题描述:
我想我不明白。我试着解析某些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.
答
我尝试了代码就像你在那里和$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