首页 > 解决方案 > $dom = 新的 DOMDocument; 显示一行

问题描述

我正在做一个 DOMDocument,我从网站获取信息,我试图获取其中的文本<p> </p>,代码工作正常,但事实是网站有很多<P>代码,所以我得到所有信息,我只是想要第一个的信息,<p>没有<p>id类所以没有帮助请检查代码并帮助我知道如何只获得第一个<p>

$html = file_get_contents('http://example.com');

$dom = new DOMDocument;  
@$dom->loadHTML($html);  

$links = $dom->getElementsByTagName('p'); 

forsearch ($links as $link){  
echo $link->nodeValue; 
echo $link->getAttribute('') , '<br>'; 
$goal = $link->nodeValue;
}

代码工作正常,但它显示了所有文本,我只需要第一个<p>而不是全部。

标签: phpdomdomdocument

解决方案


要仅获取第一段元素,您可以这样做:

$doc = new \DOMDocument();
$doc->loadHTML(file_get_contents('http://example.com'));

$paragraphs = $doc->getElementsByTagName('p');
echo "Content of first paragraph: {$paragraphs->item(0)->nodeValue}\n";

推荐阅读