2011-06-22 34 views
1

遠程獲取的SoundCloud ID我想要的SoundCloud嵌入由它的URL http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent 這個網址給聲音文件,包括HTML嵌入代碼 ,所以我只想要刪除所有代碼和希望的聲音的ID的每一個細節17181143 我使用這個代碼使用DOM

<?php 
include('lib/simple_html_dom.php'); 

$html = file_get_html('http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent'); 

if ($html) { 
    foreach ($html->find('object') as $obj) { 
     foreach ($obj->find('param') as $par) { 
      if ($par->name == 'movie') { 
       $embed = parse_url($par->value); 
       parse_str(urldecode($embed['query']), $val); 
       if (array_key_exists('url', $val)) { 
        $url = parse_url($val['url']); 
        $path = explode('/', $url['path']); 
        $code = array_pop($path); 
        if (is_numeric($code)) { 
         echo 'CODE: ' . $code . PHP_EOL; 
        } 
       } 
      } 
     } 
    } 
} 

但這樣會給沒有一點輸出.. !! (空白)

回答

3

應該跟我回答: - D.確保$ html不是空的;如確保你實際上從該URL獲取某些內容並將其存儲在該變量中。我的回答比他瘋狂的大O夢魘短。所以如果你看到數字8,15(下面),這意味着匹配一個8位數字和15位數字之間的數字。我改變了下面的代碼。

include('lib/simple_html_dom.php'); 

$html = file_get_html('http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent'); 

preg_match_all('/[0-9]{8,15}/', $my_string, $ids); 

echo $ids[0]; 
+0

燁感謝您回覆您的代碼很好,但與8位..! 你能告訴我,如果soundcloud有id大於8位.. !! 和上次當我嘗試你的代碼它顯示聲音ID 2次 –

+0

@ user809307 k,我改變了代碼。 8,15表示8位數字和15位數字之間的長度。 – FinalForm

+0

非常感謝.. !!祝你有美好的一天 –