我有一个像这样的html块:
$localurl = '
<select name="cCountry" id="cCountry" style="width:200" tabindex="5">
<option value="251">Ascension Island</option>
<option selected="selected" value="14">Australia</option>
<option value="13">Austria</option>
';
我正在尝试使用simple_html_dom(http://simplehtmldom.sourceforge.net/)在这种情况下“澳大利亚”提取所选值。到目前为止,我已经构建了一个函数但是没有工作:
//提取所选值
function getValue_selected($value, $localurl) { $html = file_get_html($localurl); $i = 0; foreach ($html->find('select[option selected="selected"]') as $k => $v) { if ($v->name == $value) { $shows[$i]['Location'] = $v->value; } } $value = $shows[$i]['Location']; $html->clear(); unset($html); return $value; } $selected_value = getValue_selected('cCountry', $localurl)
也可以接受另一种类似的QueryPath。
答案 0 :(得分:2)
正确的答案是:
$html->find('#cCountry',0)->find('option[selected=selected]',0);
答案 1 :(得分:1)
我的猜测是,当您在函数外部定义时,您正尝试访问$shows
。如果这是问题所在,您需要将global $shows;
放在func的顶部,或者更好的是,修改签名以将其传入。例如:
getValue_selected($value, $localurl, &$shows)
{/* your function here */ }
getValue_selected($val1, $val2, $shows);