2017-12-18 49 views
0

我正在嘗試編寫一個PHP腳本,解析所有.mp3文件的https://feeds.transistor.fm/the-good-news-podcast的XML文件,然後回顯它們。我已經開始使用PHP的simplexml_load_file()。 mp3的位置如下所示:PHP爲所有.mp3鏈接解析XML文件

<enclosure url="https://media.transistor.fm/025fe5da.mp3" length="3636030" type="audio/mpeg"/> 

我該如何定位所有機箱標籤網址?以下是我有這麼遠,但它不工作:

<?php 
    $mysongs = simplexml_load_file('https://feeds.transistor.fm/the-good-news-podcast'); 
    foreach ($mysongs as $songinfo): 
     $title=$songinfo->enclosure(url); 
     echo $title; 
    endforeach; 
?> 

也試過,但沒有運氣:

<?php 
$html= simplexml_load_file('https://feeds.transistor.fm/the-good-news-podcast'); 
$dom = new DOMDocument; 
$dom->loadXML($html); 
foreach ($dom->getElementsByTagName('enclosure') as $tag) { 
     if(strpos($tag->getAttribute('url'),'.mp3')!==false) 
     { 
      echo $tag->getAttribute('url')."<br>"; 
     } 

} 
?> 

回答

0

就想通了感謝Get enclosure img url from rss feed

<?php 
$rss=simplexml_load_file('https://feeds.transistor.fm/the-good-news-podcast'); 
foreach ($rss->channel->item as $item) { 
    if (isset($item->enclosure)) { 
     echo $item->enclosure['url'].'<br>'; 
    } 
} 
?> 
0

你可以嘗試一些簡單的東西,如果這是它的應用。

$html= simplexml_load_file('https://feeds.transistor.fm/the-good-news-podcast'); 
preg_match_all("/h.*mp3/", $html, $mp3s); 
foreach ($mp3s as $mp3){ 
echo $mp3.'<br>'; 
} 

這將輸出

array(1 
0 => array(9 
0 => https://media.transistor.fm/0cf8f8b1.mp3 
1 => https://media.transistor.fm/f45a0d7d.mp3 
2 => https://media.transistor.fm/2ba746c9.mp3 
3 => https://media.transistor.fm/025fe5da.mp3 
4 => https://media.transistor.fm/58cf9a08.mp3 
5 => https://media.transistor.fm/65a6df2b.mp3 
6 => https://media.transistor.fm/33e65d6c.mp3 
7 => https://media.transistor.fm/e29ea8d3.mp3 
8 => https://media.transistor.fm/3422d3aa.mp3 
) 
)