我正在使用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
标签......
答案 0 :(得分:0)
看起来$text->find('text',2);
可以获得您想要的内容,但是我不确定当文本节点数量未知时效果如何。我会继续寻找。
答案 1 :(得分:0)
您可以使用strip_tags
<?php
strip_tags($input, '<br>');
?>
答案 2 :(得分:0)
使用条带标签,正如@Peachy指出的那样。但是,传递第二个参数<br>
意味着字符串将忽略 <br>
标记,这是不必要的。在你的情况下,
<?php
strip_tags($text);
?>
可以按照您的意愿运行,因为您只选择了content
内容中的内容。
答案 3 :(得分:0)
试试
echo "H1: ".$text->find('h1', 0)->innertext;