简单的HTML DOM,如何仅回显锚文本中的文本

时间:2014-12-21 12:48:10

标签: php

我的代码摘要:

foreach($html->find('a') as $element) {

.. 我使用内部文本:

$element->innertext

任何机会只回显锚文本unsing简单HTML DOM的文本,我尝试抓取大约10k链接但在某些情况下它打印 IF <a tag内,divs代码,图像代码等

如果<a tag是标准(简单),如:

<a href="http://www.test.com">Anchor Text</a>

所以在这种情况下,$ element-&gt; innertext将是“Anchor Text”

BUT

如果案件是这样的:

1    <a href="http://www.test.com"><div id=whatever>Anchor Text</div></a>

2    <a href="http://www.test.com"><img src="whatever" /></a>

我的$element->innertext将是:

Result1 <div id=whatever>Anchor Text</div>
Result2 <img src="whatever" />

是否有任何更改只打印文本或我应该为每个案例编写我自己的自定义条件:div,img等?

3 个答案:

答案 0 :(得分:4)

就像strip_tags($element->innertext);

一样简单

如果锚点是图像,结果将为空字符串。

答案 1 :(得分:2)

使用明文

     strip_tags($element->plaintext)

答案 2 :(得分:0)

$mbHtml = mb_convert_encoding($element->innertext, 'HTML-ENTITIES', 'utf-8');
$mbHtml = mb_eregi_replace('<(div|option|ul|li|table|tr|td|th|input|select|textarea|form)', ' <\\1', $mbHtml );