如何在php和cakephp中从youtube的url获取视频id

发布于 2024-11-16 22:53:33 字数 136 浏览 0 评论 0原文

如何从php和cakephp中的youtube url获取视频id

我有这个url

http://youtu.be/JaFfJN_iKdA

如何通过正则表达式从中获取视频id

how to get Video id from url of youtube in php and cakephp

i have this url

http://youtu.be/JaFfJN_iKdA

how to get video id from it by regular expression

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

太阳公公是暖光 2024-11-23 22:53:33
$url = "http://youtu.be/JaFfJN_iKdA";
if (preg_match('%(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $result)) {
    $video_id = $result[1];
}

这适用于一系列常见的 YT URL 格式,包括您发布的格式。

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

That will work for a bunch of common YT URL formats including the one you posted.

瑶笙 2024-11-23 22:53:33

您可以使用 parse_url()< 代替正则表达式/a> 功能:

<?php
$url = parse_url("http://youtu.be/JaFfJN_iKdA");
echo substr($url["path"], 1);

Instead of regular expressions, you could use parse_url() function:

<?php
$url = parse_url("http://youtu.be/JaFfJN_iKdA");
echo substr($url["path"], 1);
望喜 2024-11-23 22:53:33

你可以使用的图书馆
http://autoembed.com/
它还涵盖其他 100 个视频门户

you could use the library of
http://autoembed.com/
it also covers 100 other video portals

蹲墙角沉默 2024-11-23 22:53:33

经过努力,我做了一个获取 youtube 信息的功能

function getYoutubeThumbnail($url)
{
    if(preg_match('![?&]{1}v=([^&]+)!', $url . '&', $m))
    {
        $videoid = $m[1];
    }
    else if(preg_match('~/v/([0-9a-z_]+)~i', $url, $m))
    {
        $videoid = $m[1];
    }
/*  else if (preg_match('%(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $result)) 
    {
        $video_id = $result[1];
    }*/
    $youtube_thumbnail = 'http://img.youtube.com/vi/' . $videoid . '/default.jpg';

    $c = curl_init();

    $url = trim($url);

    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($c, CURLOPT_URL, $url);

    $contents = curl_exec($c);

    curl_close($c);


    $feed = "http://gdata.youtube.com/feeds/api/videos/".$videoid;

    $newInfo = trim(@file_get_contents($feed));

    preg_match('/<media:title(.*?)<\/media:title>/', $newInfo, $result);

    $title = strip_tags($result[0]);

    preg_match('/<media:keywords(.*?)<\/media:keywords>/', $newInfo, $result);

     $desc = strip_tags(str_replace(",", "", $result[0]));

     //embed path
     $embed_path = "http://www.youtube.com/embed/".$videoid;



    $youtube_info = array('videoid' => $videoid,'title' => $title, 'description' => $desc,'youtube_thumbnail' => $youtube_thumbnail,'embed_path' => $embed_path) ;

    return $youtube_info;

}

after hard working ,i make a function for getting youtube info

function getYoutubeThumbnail($url)
{
    if(preg_match('![?&]{1}v=([^&]+)!', $url . '&', $m))
    {
        $videoid = $m[1];
    }
    else if(preg_match('~/v/([0-9a-z_]+)~i', $url, $m))
    {
        $videoid = $m[1];
    }
/*  else if (preg_match('%(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $result)) 
    {
        $video_id = $result[1];
    }*/
    $youtube_thumbnail = 'http://img.youtube.com/vi/' . $videoid . '/default.jpg';

    $c = curl_init();

    $url = trim($url);

    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($c, CURLOPT_URL, $url);

    $contents = curl_exec($c);

    curl_close($c);


    $feed = "http://gdata.youtube.com/feeds/api/videos/".$videoid;

    $newInfo = trim(@file_get_contents($feed));

    preg_match('/<media:title(.*?)<\/media:title>/', $newInfo, $result);

    $title = strip_tags($result[0]);

    preg_match('/<media:keywords(.*?)<\/media:keywords>/', $newInfo, $result);

     $desc = strip_tags(str_replace(",", "", $result[0]));

     //embed path
     $embed_path = "http://www.youtube.com/embed/".$videoid;



    $youtube_info = array('videoid' => $videoid,'title' => $title, 'description' => $desc,'youtube_thumbnail' => $youtube_thumbnail,'embed_path' => $embed_path) ;

    return $youtube_info;

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文