Как спарсить 20 последних видео ютуба
есть такая функция
`function getYoutubePlaylistDataXml($ytlist, $cnt = 100, $cache_life = 3600)
{
# файл, содержащий копию ленты
$cache_file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $ytlist . '.json';
# Ключ для запросов
$api_key = 'ключ';
# специальный адрес, отвечающий за выдачу фида
$url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet'
. '&playlistId=' . $ytlist
. '&maxResults=' . $cnt
. '&key=' . $api_key;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$buf = curl_exec($ch);
curl_close($ch);
if($url != '&pageToken=') {
$url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet'
. '&playlistId=' . $ytlist
. '&maxResults=' . $cnt
. '&pageToken=' . "----"
. '&key=' . $api_key;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$pars = curl_exec($ch);
curl_close($ch);
}
# декодируем JSON данные
$buf = json_decode($buf,true);
$pars = json_decode($pars,true);
foreach ($pars['items'] as $val) {
$buf['items'][] = $val;
}
return json_encode($buf, JSON_UNESCAPED_UNICODE);
}`
как сделать что бы парсилось 20 последних видео? на данный момент выводит все видео с плейлиста
Ответы (1 шт):
Автор решения: u_mulder
→ Ссылка
Если нет никакой возможности отсортировать элементы, то можно сделать так:
// ... предыдущий код
foreach ($pars['items'] as $val) {
$buf['items'][] = $val;
}
// теперь возьмем $size последних элементов массива $buf['items']:
$size = 20;
// добавляем `-` перед `$size`, чтобы взять именно с конца
// если элементом в массиве меньше 20 - то все они вернутся
$buf['items'] = array_slice($buf['items'], -$size);
return json_encode($buf, JSON_UNESCAPED_UNICODE);