【问题标题】:Return id of video from metacafe using preg_match or something使用 preg_match 或其他东西从 metacafe 返回视频的 id
【发布时间】:2013-05-22 15:40:48
【问题描述】:

我正在尝试编写插件,只需从浏览器复制和粘贴 url,即可从各种视频网站捕获视频详细信息。

但我对 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 仅将视频 id 用于 xml 数据,并且 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 数据并解析持续时间、拇指、标签等信息...

【问题讨论】:

    标签: php regex preg-match


    【解决方案1】:

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

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

    示例 PHP 代码,

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

    【讨论】:

    • 在此我收到错误,例如: preg_match() [function.preg-match]: Unknown modifier '.'虽然这看起来与我为 vimeo 视频找到的解决方案非常相似,但我不太熟悉如何创建模式
    • 我回来说缺少一些东西来模式和查看编辑过的帖子,现在它可以工作了。完美的。谢谢。现在,如果有人可以向我解释所有这些在模式中的含义,或者指出我可以了解更多关于如何格式化模式以供将来使用的地方。
    • @AleksandarĐorđević 这是最好的学习网站(就我而言Regular ExpressionCLICK HERE
    【解决方案2】:

    或者你也可以使用这样的东西:

    $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];
    

    【讨论】:

    • 现在修复 - 我写 ',' 而不是 '/' 作为分解分隔符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2015-10-18
    • 2020-10-14
    • 1970-01-01
    • 2020-09-07
    • 2012-08-22
    相关资源
    最近更新 更多