Question

I am trying to modify Simple RSS Reader to get the Youtube Video ID of an item within the RSS to determine the thumbnail, I am seemingly on the right track but not so great with PHP - This is from helper.php and once complete could be used by many others to modify their own Simple RSS Reader Mod for Joomla....

I am wondering how to make this function "getYTid" to place the Id inside the URL Veriable at the end - the code is off in two places, @ the function, and declaring the variable at the end not only how do I do it, but if possible please direct me to a place where I can better understand the syntax of declaring variables with mixed text as well if possible I seem to run into this problem a lot

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';
Was it helpful?

Solution

Here is an working example you can easily adjust it to work for you:

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;
  • I did a little edit so that this function is more bullet proof...

OTHER TIPS

You should use regular expressions to parse the YouTube IDs from the URL strings. preg_match parsing in PHP

And to concatenate strings in PHP, you use periods:

$feedItem->feedImageSrc = 'http://i3.ytimg.com/vi/' . $ytvID . '/default.jpg';
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top