首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用preg_match或其他方法从metacafe返回视频的id

使用preg_match或其他方法从metacafe返回视频的id
EN

Stack Overflow用户
提问于 2012-09-30 23:19:30
回答 2查看 746关注 0票数 1

我正在尝试编写插件,将捕获各种视频网站的视频细节,只需从浏览器复制和粘贴网址。

但我对metacafe视频有问题。从示例中获取此视频url的详细信息

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

我需要转到metacafe并从这个视频id中解析http://www.metacafe.com/api/item/cb-V9EJSvnKvTcH/

我认为这会很容易,但问题是metacafe只对xml数据使用视频id,并且url在id之后也包含视频名称。

要仅嵌入我使用的视频

代码语言:javascript
运行
复制
$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和embed的名字。但正如我所说的,对于其他细节,我需要从url解析xml数据,并获得xml数据的url,我只需要没有名称的视频id。

我不是php pro,所以我在使用preg_match时有点迷失,我如何使用preg_match来获得这个"cb-V9EJSvnKvTcH“,这样我就可以提取xml数据并解析诸如持续时间、拇指、标签等信息……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-30 23:22:40

试试这个吧。也许这能帮到你。

代码语言:javascript
运行
复制
(?<=watch/).*?(?=/)

示例PHP代码,

代码语言:javascript
运行
复制
<?php
$subject = "theLINKhere";
$pattern = "#(?<=watch/).*?(?=/)#"; // edit: Added modifiers
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>
票数 1
EN

Stack Overflow用户

发布于 2012-09-30 23:32:50

或者,您也可以使用下面这样的代码:

代码语言:javascript
运行
复制
$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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12662350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档