2016-07-31 86 views
-2

我想知道如何獲得YouTube視頻ID,我的API打印出來的內容。我想獲取頁面內容,而不是源代碼。如果有人想看看它的樣子,這裏是API網址:http://fnapi.cpt-design.tk/api.php從URL獲取頁面內容

我有這個迄今爲止

<?php $id = NULL; 
     $channel_id = 'UCd_09Tp1Bk05gDqc1RWyhuw'; 
     $xml = simplexml_load_file(sprintf('youtube.com/feeds/videos.xml?channel_id=%s';, $channel_id)); 
     if (!empty($xml->entry[0]->children('yt', true)->videoId[0])){ 
     $id = $xml->entry[0]->children('yt', true)->videoId[0]; 
     } 
     echo $id; 
?> 
+2

歡迎堆棧溢出!我們需要更多的細節(以及更深入的解釋,以及目前的代碼)。 –

+0

@DavidGomes http://pastebin.com/iHvx3vJR 這是我唯一的代碼。我想用JQuery打印出這個ID。 –

回答

0

如果該頁面位於您可以通過smarx使用回答同一個域。

如果您想從其他域獲取頁面內容。您應該使用PHP =>捲曲

How to get page content using cURL?

或者,如果這是你的域名,你可以發送

<?php header("Access-Control-Allow-Origin: *"); ?> 

根據您的回覆。

+0

我想用JQuery獲取頁面內容:/不是cURL。我無法使用它,因爲我正在創建瀏覽器擴展。 –

+0

如果我明白,您想獲取youtube.com網頁內容,那麼您無法使用javascript獲取網頁內容。 XSS保護。跨站點內容無法通過JavaScript讀取。沒有主要的瀏覽器會允許你。或者,如果你想從這個api獲得youtube video id,並且你的域名,你應該發送allow-cross-origin標題和你的回覆 – ArtemSky

+0

是啊!這就是我想要的!我想訪問我自己的頁面並獲取它的內容。只有YouTube視頻ID。你知道如何發送這個頭文件並獲得這個ID嗎? –

0

從同一域中的頁面,這應該工作:

$.get('http://fnapi.cpt-design.tk/api.php').done(function (id) { 
    console.log(id); 
}); 

從另一個域名,你首先必須修改通過將報頭Access-Control-Allow-Origin: *支持CORS的API。

在PHP中,這意味着把這個線在你的代碼的頂部:

header("Access-Control-Allow-Origin: *"); 
+0

它位於不同的域中,因爲我正在創建瀏覽器擴展。 –

+0

那麼,API不支持CORS,所以它不能從另一個域的JavaScript中調用。也就是說,我認爲瀏覽器擴展通常可以產生跨源請求......你在爲什麼瀏覽器寫擴展名?這是你注入到在後臺運行的頁面或代碼中的JavaScript嗎?你可能想分享你的實際代碼。 – smarx

+0

我正在爲Opera創建擴展。 這裏是我的實際代碼:http://pastebin.com/T7KSGqRb 而且 - 是的,該代碼在後臺運行。 –