2010-07-09 20 views
0

有没有人知道一个正则表达式提取视频ID从Vimeo <embed>标签使用PHP?有谁知道一个正则表达式从Vimeo中嵌入使用PHP提取视频ID?

如:

13084859 

来自:

<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object> 

回答

3

Here:

$html = '<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>'; 

if (preg_match('/moogaloop\.swf\?clip_id=([0-9]+)/', $html, $matches)) { 
    echo $matches[1]; 
} else { 
    echo 'n/a'; 
} 
+0

这是完美的。你已经保存了我的周末;) – SqrBrkt 2010-07-09 17:22:25

+0

嵌入代码的旧版本与这个解决方案一起工作:http://stackoverflow.com/questions/5087681/youtube-vimeo-video-id-from-embed-code-or-from-网址与 - PHP正则表达式-RE – phirschybar 2011-06-29 10:41:53

0

下面是一个简单的函数,我为你而写,工作正常,但它不使用正则表达式:)

<?php 
function get_vimeo_id($embed) 
{ 
    $vimeo_id_array = explode('?clip_id=', $embed); 
    $vimeo_id_array_2 = explode('&amp;', $vimeo_id_array[1]); 
    $vimeo_id = $vimeo_id_array_2[0]; 

    return $vimeo_id; 
} 

// Get Vimeo Id 
$vimeo_id = get_vimeo_id('<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>'); 

// Use $vimeo_id 
echo $vimeo_id; 
?> 
+0

真棒。这次真的需要它作为正则表达式,但我一定会记下这一点以备将来使用。 – SqrBrkt 2010-07-09 17:23:35

相关问题