我试图从给定的HTML获取明文。但是,我不可能。 为此,我所做的是
我的html位于$content
变量
现在,我将$ content变量传递给php DomDocuemnt
$d = new DOMDocument();
@$d->loadHTML($content)
我的下一步是从获得的HTML获取明文。
请帮帮我。提前谢谢!
答案 0 :(得分:3)
我无法理解您的问题但是如果您想将HTML代码作为字符串 试试这个......
$d = new DOMDocument();
$d->loadHTML($content);
$plainText = $d->textContent;
echo $plainText;
答案 1 :(得分:0)
DOM本身不具有此功能。您可以使用strip_tags()
函数。像这样:
$d = new DOMDocument();
$d->loadHTML($content);
$plainText = strip_tags($d->textContent);
echo $plainText;
// which is probably equivalent to:
$plainText = strip_tags($content);
注意:使用DOMDocument()可用于测试$content
是否正确或是否要获取特定标签($main = $d->getElementByName('<main>'); $plainText = strip_tags($main[0]->textContent)
),否则直接使用strip_tags()
足够。
存在一些问题,因为strip_tags()
函数不知道要删除的标签的类型。这意味着一个序列,例如:
... word</p><p>more ...
将连接这两个词:
... wordmore ...
这是一个困难问题,因为某些标签预计会以这种方式删除,而另一些标签则不会删除。例如,如果用户强调某种形式,则没有空格是删除标签的正确方法:
che<u>val<u> -> cheval
che<u>veaux<u> -> cheveaux
(法语中“马”的单数和复数)
浏览器也不知道,CSS告诉标签是块(<div>
还是内联(<u>
)。