1

我正在尝试修改 Simple RSS Reader 以获取 RSS 中某个项目的 Youtube 视频 ID 以确定缩略图,我似乎在正确的轨道上,但 PHP 不太好 - 这是来自 helper.php,一旦完成可能是许多其他人使用它来修改他们自己的用于 Joomla 的简单 RSS 阅读器模块......

我想知道如何使这个函数“getYTid”将Id放在最后的URL Veriable中 - 代码在两个地方关闭,@函数,并且在最后声明变量不仅我该怎么做,但是如果可能的话,请将我引导到一个我可以更好地理解使用混合文本声明变量的语法的地方,如果可能的话,我似乎经常遇到这个问题

function getYTid('$feed->itemLink') {

    $ytvIDlen = 11; // This is the length of YouTube's video IDs

    // The ID string starts after "v=", which is usually right after 
    // "youtube.com/watch?" in the URL
    $idStarts = strpos($ytURL, "?v=");

    // In case the "v=" is NOT right after the "?" (not likely, but I like to keep my 
    // bases covered), it will be after an "&":
    if($idStarts === FALSE)
        $idStarts = strpos($ytURL, "&v=");
    // If still FALSE, URL doesn't have a vid ID
    if($idStarts === FALSE)
        die("YouTube video ID not found. Please double-check your URL.");

    // Offset the start location to match the beginning of the ID string
    $idStarts +=3;

    // Get the ID string and return it
    $ytvID = substr($ytURL, $idStarts, $ytvIDlen);

    return $ytvID;

}
                $feedItem->feedImageSrc = 'http://i3.ytimg.com/vi/'$ytvID'/default.jpg';
4

2 回答 2

0

您应该使用正则表达式从 URL 字符串中解析 YouTube ID。PHP中的preg_match解析

要在 PHP 中连接字符串,请使用句点:

$feedItem->feedImageSrc = 'http://i3.ytimg.com/vi/' . $ytvID . '/default.jpg';
于 2012-09-28T19:08:36.033 回答
0

这是一个工作示例,您可以轻松调整它以适合您:

function get_yt_id($yturl, $idlen) {

    $idchk_que = strpos($yturl, "?v=");
    $idchk_amp = strpos($yturl, "&v=");

    if ($idchk_que > -1 || $idchk_amp > -1) {

        if ($idchk_que > -1) {

            $yturl_exploded = explode("?v=", $yturl);

        }
        else if ($idchk_amp > -1) {

            $yturl_exploded = explode("&v=", $yturl);

        }
        $yturl_exp = $yturl_exploded[1];
        $ytid = substr($yturl_exp, 0, $idlen);

        return $ytid;

    }
    else {

        return "ID NOT FOUND";

    }

}

$id_from_yturl = get_yt_id("http://www.youtube.com/watch?v=YvbQ9G0yXeU&t=14m36s", "11");

print $id_from_yturl;
  • 我做了一点编辑,使这个功能更防弹......
于 2012-09-28T19:11:34.843 回答