这是我想要做的:
- 获取 html 页面的正文部分并从中删除 html 标记
使用explode返回给定字符串后面的文本
$html = file_get_contents($url); $html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"); $dom = new DOMDocument; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $query = $xpath->query("/html/body"); $body = $dom->saveXML($query->item(0)); $body = strip_tags($body); echo end(explode('Item description', $body));
最后一行不像我预期的那样工作。如果我使用带有空格的字符串作为分隔符,它就不起作用(只返回所有内容)。当我使用一个没有空格的单词时,例如“描述”,它可以工作。我需要做什么才能使其与短语一起使用?我对 strpos 也有同样的问题 - 如果 $needle 有一个空格,它不会给出正确的结果。
更新:
源 html 在我用作ie
中的分隔符的两个单词之间有一个explode
Item description
我试着做str_replace(" ", ' ', $body);
,但没有做任何事情。但是,当我str_replace(" ", ' ', $html);
对 html 进行处理之前,它被$dom->saveXML
修复了问题。
这篇
博文让我觉得这$dom->saveXML
可能会改变 html;