php,simple_html_dom.php,获取选择的选项

时间:2011-06-26 13:06:10

标签: php html-parsing simple-html-dom simpledom

我有一个像这样的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。

2 个答案:

答案 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);