使用preg_match获取youtube / vimeo id

时间:2013-03-27 09:41:55

标签: php html preg-replace preg-match

如何获取youtube和vimeo视频嵌入代码的视频ID? youtube视频嵌入代码如下所示:

<iframe width="560" height="315" src="http://www.youtube.com/embed/dbPmWbqAJPs" frameborder="0" allowfullscreen></iframe>

其中的ID是dbPmWbqAJPs。

vimeo嵌入代码如下所示:

<iframe src="http://player.vimeo.com/video/62468031?color=00ff00" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

此示例中的ID为62468031。

我不想替换那些确切的ID,而是有一个pregmatch / pregreplace,可以在vimeo和youtube的任何嵌入中找到id。

2 个答案:

答案 0 :(得分:2)

试试这个

VIMEO

$string='<iframe src="http://player.vimeo.com/video/62468031?color=00ff00" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
preg_match_all( '~http://player.vimeo.com/video/(.*?)\?~si',$string,$M);
echo ($M[1][0]);

youtube:

$string='<iframe width="560" height="315" src="http://www.youtube.com/embed/dbPmWbqAJPs" frameborder="0" allowfullscreen></iframe>';
preg_match_all( '~http://www.youtube.com/embed/(.*?)\"~si',$string,$M);
echo ($M[1][0]);

答案 1 :(得分:1)

尝试下面的php代码,它没有pregmatch

即。 :

http://vimeo.com/22222222
http://player.vimeo.com/video/22222222
http://vimeo.com/channels/staffpicks/22222222
http://vimeo.com/groups/groupsname/22222222

PHP代码:

    $vimeoUrl = 'http://vimeo.com/channels/channelsName/22222222';
    $fetchVimeoIdArr = explode('/', $vimeoUrl);
    $idCounter = count($fetchVimeoIdArr) - 1;
    $vimeoId = $fetchVimeoIdArr[$idCounter];