Joomla - Простой RSS Reader, чтобы получить Youtube Video ID

Я пытаюсь изменить Simple RSS Reader, чтобы получить идентификатор видео YouTube для элемента в RSS, чтобы определить миниатюру. Я нахожусь на правильном пути, но с PHP не так уж и хорош - это из helper.php и после его завершения может быть используется многими другими для модификации своего собственного мода Simple RSS Reader для Joomla....

Мне интересно, как сделать эту функцию "getYTid", чтобы поместить идентификатор в 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';

2 ответа

Решение

Вот рабочий пример, который вы можете легко настроить, чтобы он работал на вас:

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;
  • Я немного отредактировал, чтобы эта функция была более пуленепробиваемой...

Вы должны использовать регулярные выражения для анализа идентификаторов YouTube из строк URL. синтаксический анализ preg_match в PHP

И для объединения строк в PHP вы используете точки:

$feedItem->feedImageSrc = 'http://i3.ytimg.com/vi/' . $ytvID . '/default.jpg';
Другие вопросы по тегам