2014-12-21 7 views
3

總結我的代碼:簡單的HTML DOM,如何從錨文本呼應只有文字

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> 

所以在這種情況下,$元素 - >的innerText將是 「錨文本」 如果

的情況下,像這樣的:

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

你不應該用'plaintext'屬性呢? – raina77ow

回答

3

它的那樣簡單strip_tags($element->innertext);

其結果將是一個空字符串,如果錨的圖像。

+0

是的它的工作原理,我現在沒有關於strip_tags功能,非常感謝。 –

+0

strip_tags幫助。謝謝@TecBrat –

2

使用明文

 strip_tags($element->plaintext) 
+0

當使用' - >純文本'時需要'strip_tags()'? – TecBrat

+0

是的,我正在使用它 –

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);