2012-09-30 240 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

这仍然不适合我。 –