我的代码摘要:
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等?
答案 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 );