php,simple_html_dom.php,获取选中选项

php,simple_html_dom.php,获取选中选项,php,html-parsing,simple-html-dom,simpledom,Php,Html Parsing,Simple Html Dom,Simpledom,我有这样一个html块: $localurl = ' $localurl='0 阿森松岛 澳大利亚 奥地利 '; 我正在尝试使用simple_html_dom()提取本例中的“Australia”所选值。到目前为止,我已经构建了一个函数,但不起作用: //提取所选值 function getValue_selected($value, $localurl) { $html = file_get_html($localurl); $i = 0; foreach ($html->f

我有这样一个html块:

$localurl = ' $localurl='0

阿森松岛
澳大利亚
奥地利
'; 我正在尝试使用simple_html_dom()提取本例中的“Australia”所选值。到目前为止,我已经构建了一个函数,但不起作用:

//提取所选值

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) 函数getValue\u已选择($value,$localurl) { $html=file\u get\u html($localurl); $i=0; foreach($html->find('select[option selected=“selected”]”)作为$k=>$v){ 如果($v->name==$value){ $shows[$i]['Location']=$v->value; } } $value=$显示[$i]['Location']; $html->clear(); 未结算($html); 返回$value; } $selected\u value=getValue\u selected('cCountry',$localurl)
也可以接受类似查询路径的替代方法。

我的猜测是,当它在函数外部定义时,您试图访问
$shows
。如果这是问题所在,您需要将
global$shows,或者更好的是,修改签名以将其传入。比如:

getValue_selected($value, $localurl, &$shows)
{/* your function here */ }

getValue_selected($val1, $val2, $shows);

我的猜测是,当它在函数外部定义时,您试图访问
$shows
。如果这是问题所在,您需要将
global$shows,或者更好的是,修改签名以将其传入。比如:

getValue_selected($value, $localurl, &$shows)
{/* your function here */ }

getValue_selected($val1, $val2, $shows);
正确答案是:

$html->find('#cCountry',0)->find('option[selected=selected]',0);
正确答案是:

$html->find('#cCountry',0)->find('option[selected=selected]',0);

建议的第三方替代方法实际使用而不是字符串分析:,and.@Gordon我如何使用QueryPath获取它?建议的第三方替代方法实际使用而不是字符串分析:,and.@Gordon我如何使用QueryPath获取它?最初我使用函数获取隐藏输入:foreach($html->find('input[type=“hidden”]”为$k=>$v){。我可以将输入名称设置为$value。(例如,如果有,我调用函数getValue_selected('postingID',$localurl),从html内容中检索值“98765”)。现在我尝试修改它,使其在“select”上工作如上所示的输入类型,但似乎不起作用。我仍然说您正在尝试访问一个范围中未定义的变量。您是否尝试将变量
$select=array();
添加到函数内部?最初,我使函数获取隐藏输入:foreach($html->find('input[type=“hidden”])作为$k=>$v){.我可以将输入名称设置为$value。(例如,如果有,我调用函数getValue_selected('postingID',$localurl),它从html内容中检索值“98765”)。现在我尝试修改它,使其在“select”上工作如上所示的输入类型,但似乎不起作用。我仍然认为您正在尝试访问范围中未定义的变量。您是否尝试将变量
$select=array();
添加到函数内部?