1

嘿,我遇到了一个简单的 DOM 解析器问题,这让我发疯了。

这工作正常:

foreach($html->find('input[name=sex]') as $e)
echo $e->value;

即使它只有 1 个结果。

然而这不起作用:

echo $html->find('input[name=sex]')->value;

我不想真正使用 foreach 因为我只希望得到 1 个结果。所以有人可以帮助我处理第二个代码块吗?

干杯

4

3 回答 3

4

根据文档,第二个参数是您希望找到的索引。将其设置为 0 以返回第一个 ( 0th ) 元素而不是对象数组:

通过 CSS 选择器查找元素。如果设置了索引,则返回第 N 个元素对象,否则返回对象数组。

$html->find('input[name=sex]', 0)->value;
于 2011-10-20T19:43:21.047 回答
0
$html->find('input[name=sex]')[0]->value;

它似乎find返回一个数组,因此使用索引会对您有所帮助。

使用上面的代码。

于 2011-10-20T19:41:44.257 回答
0

如果你可以在某物上使用 for-each,它就是一个数组/集合,即使只有一个元素。您要求回显整个数组,这可能需要print_r. 正如另一位海报所建议的那样,使用下标。

于 2011-10-20T19:44:17.890 回答