2010-11-05 62 views
1

我想知道如何從特定的html文件中過濾flash內容。從html中過濾flash內容

我知道我可以使用正則表達式和搜索.swf或.flv文件,但有沒有另一種從HTML文件獲取Flash電影的方式?

我想使用PHP來獲取鏈接到HTML文件中的Flash內容。

提前致謝!

+0

是的,你可以regex'em:谷歌:PHP正則表達式Flash的SWF(http://www.google.com/search?q=php+regular+expressions + flash + swf) – 2010-11-05 19:14:19

回答

1

使用DOM解析器並查找硬編碼的對象/嵌入元素,並通過正則表達式查看src/data屬性值是否包含.swf。

0

只是一個想法,但你可以尋找結構。例如,Flash內容通常被加載到標籤中。一旦你有了它,你可以通過它來解析,通過抓取非IE瀏覽器中'data'屬性的內容來抓取你需要的信息,或者在IE中使用jQuery抓取這些值來抓取讓你的生活無限簡單。

+0

好的,但問題是,我無法找到視頻的網址很多次。例如,看看southparkstudios [dot] com並點擊一個電影。你可以找到播放器的瑞士法郎,但沒有播放器播放的文件.... – CyberK 2010-11-09 07:52:17

+0

@Cyber​​K這個問題很有可能是由於2種可能的情況: 1)它們在編譯的SWF文件中對電影源進行硬編碼。在這種情況下,PHP無法獲取該信息。 2)swf文件包含對XML文件,webservice或包含電影源(路徑)的數據庫的硬編碼引用。如果正在使用XML文件,並且您可以找到/訪問它,那麼您可以使用PHP/JS /等輕鬆解析該文件...如果他們已經走了WS/DB路線,那麼就像情景一樣,您運氣不好。 – 2010-11-09 13:57:34

0

退房http://simplehtmldom.sourceforge.net/

$html = file_get_html('test.htm'); 
foreach($html->find('object') as $element) { 
//now you can access the <object> tags attributes like 
echo $element->id; 
//usually flash is embedded in an <object> tag, so you can just wipe the contents of it with 
$element->innertext=''; 
} 
+0

好酷,但是還有一種方法來找到swf源代碼?例如,你有一個播放器,我需要它播放的文件的來源。我怎麼弄到的?提前致謝! – CyberK 2010-11-06 16:20:08

+0

你可以使用foreach($ html-> find('embed')as $ element),然後$ element-> src將返回swf文件。 – 2010-11-08 00:17:32