tags:

views:

46

answers:

2

Does anyone know a regexp to extract just the video id from a Vimeo embed using php?

eg:

13084859

from:

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

A: 

Here is a simple function I've written for you, is working fine, but its not using regex :)

<?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;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>' );

// Use $vimeo_id
echo $vimeo_id;
?>
ahmet2106
awesome. really needed it as regex this time, but I'll certainly make a note of this for future use.
SqrBrkt
+2  A: 

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;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13084859&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;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';
}
Kieran Allen
that's perfect. you've saved my weekend ;)
SqrBrkt