我想使用PHP简单的HTML DOM解析器从网站上刮掉。 源代码是如此随机:
<font face="Arial" color="#ff0000">
<p>Parameters</p>
</font><font face="Arial" size="2" color="#ff0000">
<p>Param1</p>
</font><font face="Arial" size="2" color="#0000ff">
<p>Details. (Lob., </font><i><font face="Arial"
size="2" color="#ff0000">Co v</font><font face="Arial" size="2"
color="#0000ff">.)</p>
而不是将“详情。(Lob。,Co v。)”直接放在&lt; p为H. &LT; / p为H. ,它使用&lt;字体&GT;和&lt;我取代。 当我使用这段代码时
foreach($html->find('p') as $p)
{
echo $p->plaintext.'<br>';
}
我发现“详情。(Lob。,”它在找到&lt; i&gt;或&lt; font&gt;时停止。 如何提取整行“详细信息。(Lob。,Co v。)”
感谢您的回答
答案 0 :(得分:1)
您可以使用 strip_tags()功能删除不必要的标记。删除不必要的标签后,您可以使用DOM解析器。
strip_tags()函数从HTML,XML和PHP中删除一个字符串 标签
string strip_tags(string $ str [,string $ allowable_tags])
您可以在php.net
上阅读有关strip_tags()函数的更多信息示例:强>
$html = '<font face="Arial" color="#ff0000">
<p>Parameters</p>
</font><font face="Arial" size="2" color="#ff0000">
<p>Param1</p>
</font><font face="Arial" size="2" color="#0000ff">
<p>Details. (Lob., </font><i><font face="Arial"
size="2" color="#ff0000">Co v</font><font face="Arial" size="2"
color="#0000ff">.)</p>';
$html = strip_tags($string, '<p>');
echo $html;
<强>结果:强>
<p>Parameters</p>
<p>Param1</p>
<p>Details. (Lob., Co v.)</p>