2011-07-04 29 views
3

我想提取一些頁面內的所有鏈接與他們的鏈接文本顯示在一個塊中。我試過正則表達式,但它沒有得到正確的結果,因爲標籤沒有修復模式,它們有各種屬性。我使用PHP。提取所有<a>標籤從內容

我該怎麼辦?

+2

你做**不**想用正則表達式這一點。 – ThiefMaster

回答

8

DOMDocument::loadHTML

喜歡:

$doc = new DOMDocument(); 
$doc->loadHTML($string); 
foreach($doc->getElementsByTagName('a') as $a) { 
    // do something with $a->textContent 
} 
+0

謝謝you.i將它添加到我的代碼中,並得到這個錯誤:致命錯誤:DOMElement類的對象無法轉換爲 –

+0

中的字符串您傳遞給loadHTML函數的內容? $字符串需要是html的內容 –

+0

它是html.the問題是我回聲$ a不是$ a-> textContent。 –

2

您可以嘗試使用獲得指定PHP:DOMDocument::getElementsByTagName標籤。這裏有一個例子:

內page.html中

<a href="#">link1</a> 
<a href="#">link2</a> 
<a href="#">link3</a> 

,這是你的PHP代碼:

<?php 

$src = new DOMDocument('1.0', 'utf-8'); 
$src->formatOutput = true; 
$src->preserveWhiteSpace = false; 
$src->load('page.html'); 

$links = $src->getElementsByTagName('a'); 
?> 
相關問題