我正在使用这段代码使用Simple Html dom:
$google = "http://www.google.com/something.";
$html = file_get_html($google_html);
foreach ($html->find('span[class=st]') as $element)
echo $element->innertext;
但我只想回应$element->innertext
中的第一个。
我怎能只回应第一个?
上面的代码回显了所有元素。
我的意思是我们不需要获取所有元素,我们只需要第一个元素,因此浪费时间挑选所有元素并且他们拿起第一个元素!
更好的是,当第一个被发现时,SimpleDom会停下来寻找新物品。
答案 0 :(得分:2)
如果您不需要,请不要使用迭代。
$elements = $html->find('span[class=st]');
echo $elements[0]->innertext;
您还可以使用选择器中的:first
修饰符来提高效率。
答案 1 :(得分:-1)
在第一次迭代后使用break()
。
foreach ($html->find('span[class=st]') as $element){
echo $element->innertext;
break;
}
您可以在PHP.net中阅读本文档中有关break()
的更多信息:http://php.net/manual/en/control-structures.break.php
但我会使用此方法来获取数组的第一个元素:
echo $html->find('span[class=st]')->innertext;
无需循环。