ランキング参加中、クリックお願いします → にほんブログ村 動画紹介ブログ 気になる動画へ にほんブログ村 テレビブログ テレビ・ラジオ情報へ にほんブログ村 為替ブログ FX スイング派へ ブログランキング・にほんブログ村へ

[PHP] [SimplePie] : 複数のRSSを取得して更新順に表示させる [キャッシュ/更新時間指定]

上記の記事と、以前に投稿したYouTube のRSSの取得方法「YouTubeの更新情報RSSの取得方法」を合体させただけですw

YouTubeチャンネルのRSSは ”https://www.youtube.com/feeds/videos.xml?channel_id=” + ”チャンネルID” でOKですが、ID部分をユーザー名などに変えている方もおります。 そういうときも ”UC” から始まる24個のローマ字と数字の組み合わせのIDを調べ、そちらに直した方がエラーが出ないと思います。
※投稿されている動画を開き、チャンネル名を見るとわかります。

<?php
require_once(‘./RSS/autoloader.php’);
$feed=new SimplePie;
$feed->set_cache_duration(‘7200’); // 単位は秒で指定、Noは ‘false’
$feed->set_cache_location(‘./RSS/cache/’); // 保存するディレクトリ
$feed->set_feed_url(
array(
‘https://www.youtube.com/feeds/videos.xml?channel_id=UCD40Qc8TTEGzeC-GgeQhuGQ’, // 私んとこ
// ‘https://www.youtube.com/feeds/videos.xml?channel_id=●●●’, //
// ‘https://www.youtube.com/feeds/videos.xml?channel_id=●●●’, //
// ‘https://www.youtube.com/feeds/videos.xml?channel_id=●●●’, //
// ‘https://www.youtube.com/feeds/videos.xml?channel_id=●●●’, //
)
);

$feed->set_item_limit(3); // 1チャンネルからの取得件数
$feed->init();
$maxitems = $feed->get_item_quantity(30); // 全表示件数
$feedItems=$feed->get_items(0,$maxitems);

echo ‘<div align=”center”>’;
echo ‘<table border=”0″ cellpadding=”3″ cellspacing=”1″ bgcolor=”#CCCCCC”>’;
echo ‘<tr>’;
echo ‘<th bgcolor=”” nowrap align=”center”>TITLE</th>’;
echo ‘<th bgcolor=”” nowrap align=”center”>Date [UTC]</th>’;
echo ‘<th bgcolor=”” nowrap align=”center”>CHANNEL</th>’;
echo ‘</tr>’;

foreach($feedItems as $item){
$website = $item->get_feed()->get_title(); // チャンネル名
$sitelink = $item->get_feed()->get_permalink(); // チャンネルへのリンクURL
$date = $item->get_gmdate(‘H:i, M d, Y’); // 各記事の日付(ここではGMT。 国内ならget_date でもOK
$title = $item->get_title(); // 各記事のタイトル
$link = $item->get_link(); // 各記事のURL
if ($item->get_gmdate(‘Y/m/d’) >= gmdate(‘Y/m/d’, strtotime( ‘- 3 day’ ) ) ) {
$newmark = ‘<font color=#ff0000>new!</font>’;
} else {$newmark = ”;}

$str = <<<EOF
<tr>
<td bgcolor=”#ffffff” style=”font-size:14px”;>
<img src=”img/RED_right.png” border=”0″> <a href=”$link” target=”_blank”><B>$title</B></a> $newmark</td>
<td bgcolor=”#ffffff” style=”font-size:10px”; nowrap>
<font color=”#333333″> <B>$date</B></font> </td>
<td bgcolor=”#ffffff” style=”font-size:13px”; align=”right”>
<a href=”$sitelink” target=”_blank”><font color=”green”><B>$website</B></font></a></td>
</tr>
EOF;

echo $str;
}

echo ‘</table>’;
echo ‘</div>’;

?>

(URLのコメントアウトは外します。) こちらも前記事同様にUTC(GMT)時間表示になっていますので、国内のみで使用するようでしたらJSTのままでかまいません。 「各記事の日付」と「new! マーク」の二箇所を変更します。 日付や時間の表示方法も変えないといけないかもしれませんね。(「Y/m/d」とか、、、)

YouTube動画の更新頻度はそんなに高くないと思いますので、更新時間は多めに取ったほうがストレス無く読み込めると思います。
こちらも echo内 や $str内の HTMLはサンプルですので変更してくださいね。 更に全記事同様に「RSSフォルダー」というのを作って、そこへモジュール(SimplePie)そっくりと入れる設定での説明ですので、実際にはフォルダーの指定などは自分の環境に合わせてください。

https://i2.wp.com/radio.chobi.net/blog/wp-content/uploads/2019/02/SimplePie.gif?fit=167%2C126https://i2.wp.com/radio.chobi.net/blog/wp-content/uploads/2019/02/SimplePie.gif?resize=150%2C126NET WALKERPHP作成・改造WEBSITE & BLOGRSSYouTube,RSS,PHP「 : 複数のRSSを取得して更新順に表示させる 」 上記の記事と、以前に投稿したYouTube のRSSの取得方法「YouTubeの更新情報RSSの取得方法」を合体させただけですw YouTubeチャンネルのRSSは 'https://www.youtube.com/feeds/videos.xml?channel_id=' + 'チャンネルID' でOKですが、ID部分をユーザー名などに変えている方もおります。 そういうときも 'UC' から始まる24個のローマ字と数字の組み合わせのIDを調べ、そちらに直した方がエラーが出ないと思います。 ※投稿されている動画を開き、チャンネル名を見るとわかります。 <?php require_once('./RSS/autoloader.php'); $feed=new SimplePie; $feed->set_cache_duration('7200'); // 単位は秒で指定、Noは 'false' $feed->set_cache_location('./RSS/cache/'); // 保存するディレクトリ $feed->set_feed_url( array( 'https://www.youtube.com/feeds/videos.xml?channel_id=UCD40Qc8TTEGzeC-GgeQhuGQ', // 私んとこ // 'https://www.youtube.com/feeds/videos.xml?channel_id=●●●', // // 'https://www.youtube.com/feeds/videos.xml?channel_id=●●●', // // 'https://www.youtube.com/feeds/videos.xml?channel_id=●●●', // // 'https://www.youtube.com/feeds/videos.xml?channel_id=●●●', // ) ); $feed->set_item_limit(3); // 1チャンネルからの取得件数 $feed->init(); $maxitems = $feed->get_item_quantity(30); // 全表示件数 $feedItems=$feed->get_items(0,$maxitems); echo '<div align='center'>'; echo '<table border='0' cellpadding='3' cellspacing='1' bgcolor='#CCCCCC'>'; echo '<tr>'; echo '<th bgcolor='' nowrap align='center'>TITLE</th>'; echo '<th bgcolor='' nowrap align='center'>Date </th>'; echo '<th bgcolor='' nowrap align='center'>CHANNEL</th>'; echo...インターネットの世界をトボトボと・・・

ランキングに参加中! クリックお願いします。 →  にほんブログ村 動画紹介ブログ 気になる動画へ にほんブログ村 テレビブログ テレビ・ラジオ情報へ にほんブログ村 為替ブログ FX スイング派へ ブログランキング・にほんブログ村へ