使用preg_match或其他东西从metacafe返回视频的ID

时间:2012-09-30 15:19:30

标签: php regex preg-match

我试图编写插件,只需从浏览器中复制并粘贴网址即可从各种视频网站捕获视频详细信息。

但是我遇到了metacafe视频的问题。 要从此视频网址示例中获取详细信息

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

我需要转到metacafe http://www.metacafe.com/api/item/cb-V9EJSvnKvTcH/并从此视频ID解析xml。

我认为这很容易,但问题是metacafe只使用xml数据的视频ID,url也包含id后的视频名称。

仅使用

嵌入视频
$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 pro所以我在使用preg_match时几乎没有丢失 我如何使用preg_match只获得这个“cb-V9EJSvnKvTcH”,这样我就可以提取xml数据并解析持续时间,拇指,标签等信息......

2 个答案:

答案 0 :(得分:1)

试试这个。也许这可以帮到你。

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

示例PHP代码,

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

答案 1 :(得分: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];