使用PHP Simple HTML DOM Parser获取文本

时间:2012-03-24 18:05:51

标签: php html-parsing simple-html-dom

我正在使用PHP Simple HTML DOM Parser从网页上获取文本。 我需要操纵的页面是这样的:

<html>
<head>
<title>title</title>
<body>
<div id="content">
<h1>HELLO</h1>
Hello, world!
</div>
</body>
</html>

我需要获取h1元素和没有标记的文本。 获取h1我使用此代码:

$html = file_get_html("remote_page.html");
foreach($html->find('#content') as $text){
echo "H1: ".$text->find('h1', 0)->plaintext;
}

但是其他文字? 我也尝试了这个,但我得到了全文:

$text->plaintext;

但它还返回了H1标签......

4 个答案:

答案 0 :(得分:0)

看起来$text->find('text',2);可以获得您想要的内容,但是我不确定当文本节点数量未知时效果如何。我会继续寻找。

答案 1 :(得分:0)

您可以使用strip_tags

简单地删除html代码
<?php
strip_tags($input, '<br>');
?>

答案 2 :(得分:0)

使用条带标签,正如@Peachy指出的那样。但是,传递第二个参数<br>意味着字符串将忽略 <br>标记,这是不必要的。在你的情况下,

<?php
    strip_tags($text);
?>

可以按照您的意愿运行,因为您只选择了content内容中的内容。

答案 3 :(得分:0)

试试

echo "H1: ".$text->find('h1', 0)->innertext;