2012-09-30 187 views
1

我試着寫插件,將捕捉來自各個視頻網站的視頻信息通過簡單的複製和粘貼URL從瀏覽器返回的視頻的ID從Metacafe的。使用的preg_match什麼

但與優酷的視頻問題IM。 從例如抓取詳情此視頻網址

http://www.metacafe.com/watch/cb-V9EJSvnKvTcH/confronting_fear_in_virtual_reality/

我需要去的Metacafe http://www.metacafe.com/api/item/cb-V9EJSvnKvTcH/,並從該視頻ID解析XML。

我認爲這將是容易的,但問題是,優酷只用視頻ID對XML數據和URL還包含標識之後,視頻名稱。

要僅嵌入視頻我使用

$video_grab_url = 'http://www.metacafe.com/watch/cb-V9EJSvnKvTcH/confronting_fear_in_virtual_reality/'; 
$embed_vid_url = parse_url($video_grab_url); 
$metacafe = mb_substr($embed_vid_url['path'], 7, -1); 

有了這個,我得到的視頻ID與名稱嵌入。 但正如我所說的其他細節,我需要從URL解析XML數據,並獲得XML數據的URL我只需要視頻ID沒有名稱。

我不是PHP的親,所以我就略輸於使用的preg_match 如何使用的preg_match只得到這個「CB-V9EJSvnKvTcH」這樣我就可以拉XML數據和分析一樣長,拇指,標籤等信息.. 。

回答

1

試試這一個。也許這可以幫助你。

(?<=watch/).*?(?=/) 

樣本PHP代碼,

<?php 
$subject = "theLINKhere"; 
$pattern = "#(?<=watch/).*?(?=/)#"; // edit: Added modifiers 
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); 
print_r($matches); 
?> 
+0

並在此我得到錯誤,如:的preg_match()[function.preg匹配]:未知修飾符'。' 儘管這看起來與我爲vimeo視頻找到的解決方案非常相似,但我不那麼熟悉如何創建模式 –

+0

我回來說,缺少某些東西來模式和看到編輯的帖子,現在它的工作。完善。謝謝。現在,如果只有某人可以向我解釋模式中所有這些東西的含義,或者指向某處我可以更多地瞭解如何格式化以備將來使用的地方。 –

+0

@AleksandarĐorđević這是用於學習「正則表達式」的最佳網站(*,對我來說)* [點擊這裏](http://www.regular-expressions.info/) –

0

或者你也可以使用這樣的事情:

$url = 'http://www.metacafe.com/watch/cb-V9EJSvnKvTcH/confronting_fear_in_virtual_reality/'; 
$path = parse_url($url, PHP_URL_PATH); 
$pieces = explode('/', $path); 

$video_id = $pieces[2]; 
+0

我得到了一個未定義抵消:現在2誤差 –

+0

固定 - 我寫「」而不是‘/’作爲分隔符爆炸。 – crash01

+0

這仍然不適合我。 –