Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This can be very easily accomplished using <a href="http://au1.php.net/parse_str">parse_str</a> and <a href="http://au1.php.net/parse_url">parse_url</a> and is more reliable in my opinion.</p> <p>My function supports the following urls:</p> <ul> <li><a href="http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player">http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player</a></li> <li><a href="http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player">http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player</a></li> <li><a href="http://youtube.com/?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player">http://youtube.com/?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player</a></li> <li><a href="http://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player">http://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player</a></li> <li><a href="http://youtube.com/?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player">http://youtube.com/?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player</a></li> <li><a href="http://youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player">http://youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player</a></li> <li><a href="http://youtube.com/watch?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player">http://youtube.com/watch?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player</a></li> <li><a href="http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player">http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player</a></li> </ul> <p>Also includes the test below the function.</p> <pre><code>/** * Get Youtube video ID from URL * * @param string $url * @return mixed Youtube video ID or FALSE if not found */ function getYoutubeIdFromUrl($url) { $parts = parse_url($url); if(isset($parts['query'])){ parse_str($parts['query'], $qs); if(isset($qs['v'])){ return $qs['v']; }else if(isset($qs['vi'])){ return $qs['vi']; } } if(isset($parts['path'])){ $path = explode('/', trim($parts['path'], '/')); return $path[count($path)-1]; } return false; } // Test $urls = array( 'http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player', 'http://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player', 'http://youtube.com/?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player', 'http://youtube.com/watch?v=dQw4w9WgXcQ&amp;feature=youtube_gdata_player', 'http://youtube.com/watch?vi=dQw4w9WgXcQ&amp;feature=youtube_gdata_player', 'http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player' ); foreach($urls as $url){ echo $url . ' : ' . getYoutubeIdFromUrl($url) . "\n"; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload