-4

可能重复:
如何从 URL 中获取视频 ID?(每日运动)

我有这个代码来获取视频的dailymotion缩略图:

<?php
    $url = get_the_content(); 
    if (preg_match('????????????', $url, $match)) {
        $video_id_dailymotion = $match[1];
    }
?>

<?php if($video_id_dailymotion): ?>
    <img class="video-thumbnail" src="http://dailymotion.com/thumbnail/video/<?php echo $video_id_dailymotion; ?>" alt="" width="190">
<?php endif; ?>

但需要 preg_match 功能部分的帮助。我应该放什么而不是???????????? 作为第一个论点?

dailymotion 视频的格式为:

http://www.dailymotion.com/video/xulmeo_osama-bin-laden-for-dummies_shortfilms

顺便提一句。$url变量包含其他内容,例如 youtube 目标代码、大量文本等,并且有时仅嵌入 dailymotion 视频。

编辑: 对于 youtube,我使用的是这样的东西:

if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match)) {
    $video_id_youtube = $match[1];
}

它正在工作,现在我需要类似的东西来进行日常运动。

编辑 2: 必须使用preg_match并在该正则表达式条件下使用 dailymotion.com

编辑 3: $url 中需要由 preg_match 处理的代码如下所示:

And here is the video <iframe src="http://www.dailymotion.com/embed/video/xsqxky" frameborder="0" width="480" height="270"></iframe>
What do you think? Let us know. Peace!
4

2 回答 2

4

对于dailymotion,视频ID 是第三个URL 段的第一个字符串(在第一个_ 之前)。根据你的例子

www.dailymotion.com/video/xulmeo _osama -bin-laden-for-dummies_shortfilms

有视频ID是xulmeo。所以你需要做的就是在第一次出现下划线之前提取字符串

代码 :

$slice=explode('/',$url);
$video_id_dailymotion=explode('_',$slice[2]);

或者干脆

$video_id_dailymotion=strtok(basename($url), '_');

参考
explode
strtok
basename


编辑:正如所指出的,dailymotion 链接出现的方式可能不同。

  1. http://www.dailymotion.com/embed/video/xulmeo
  2. http://www.dailymotion.com/video/xulmeo_osama-bin-laden-for-dummies_shortfilms

对于案例 2,请参阅前面的代码片段,对于这两种情况,请使用此代码

$slice=explode('/',$url);
$video_id_dailymotion=(strlen($slice[2])==6?$slice[2]:explode('_',$slice[2]));
// All dailymotion video id's are 6 in length
于 2012-11-01T12:16:01.943 回答
0

首先使用 HTML 解析器来提取所有链接。这将使您能够以首选形式获得信息。

然后根据底层规范规范化所有链接,即RFC3986 Section 6

现在,所有 URL 都采用了可用于比较和分析的格式。例如使用正则表达式。

对于这三个步骤,存在工具和答案:

  1. DOMDocumentDOMXPath- 请参阅如何使用 PHP 解析和处理 HTML?
  2. Net_Url2- 请参阅XPath 查询和 HTML - 在锚标记中查找特定的 HREF
  3. preg_match- 请参阅如何从 URL 中获取视频 ID?(每日运动)

通常希望您在提出问题之前先做好功课,但我将这个概括性的程序留给您和未来的“只是遇到问题”并且看不到树木的树木的访客。

于 2012-11-01T13:08:16.620 回答