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';