2017-02-14 61 views
0

我已經搜索過這個,但大部分主題都使用了java語言,但我需要在PHP中使用DOM。我想從example.com提取此元素:從DOM中提取html的URL

<div id="download" class="large-12 medium-12 columns hide-for-small-only"> 
    <a href="javascript:void(0)" link="https://mediamusic.com/media/mp3/mp3-256/Mas.mp3" target="_blank" class="mp3_download_link"> 
    <i class="fa fa-cloud-download">Download Now</i> 
    </a> 
</div> 

如何從在PHP中使用DOM這個代碼得到mp3_download_link類!正如我所說我已經搜索這個,但真的很困惑...

+0

您嘗試過什麼嗎? –

+0

@u_mulder是,'getElementsByTagName'但我需要從HTML代碼中提取該類 –

回答

0

您可以嘗試file_get_html解析HTML

$html=file_get_html('http://demo.com'); 

,並使用以下獲得錨標記的所有屬性。

foreach($html->find('div[id=download] a') as $a){ 
    var_dump($a->attr); 
} 
0

讓我們假設你有這個DOM作爲一個字符串。然後你可以使用內置的DOM擴展來獲得你需要的鏈接。以下是一個代碼的示例:

$domstring = '<div id="download" class="large-12 medium-12 columns hide-for-small-only"> 
    <a href="javascript:void(0)" link="https://mediamusic.com/media/mp3/mp3-256/Mas.mp3" target="_blank" class="mp3_download_link"> 
    <i class="fa fa-cloud-download">Download Now</i> 
    </a> 
</div>'; 
$links = array(); 
$dom = new DOMDocument('1.0', 'utf-8'); 
$dom->loadHTML($domstring);//here $domstring is a string containing html you posted in your question 
$node_list = $dom->getElementsByTagName('a'); 

foreach ($node_list as $node) { 
    $links[] = $node->getAttribute('link'); 
} 

print_r(array_shift($links)); 
+0

它顯示結果中的Array() –

+0

只是使用array_shift() –

+0

我已編輯示例 –