RSSフィードのタイプにはRSSやATOMがあり、更にVer. 1.0と2.0とで記述方法がかわってくるので注意。

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

こんな感じでatomとか書いてあると思う。

 

jQueryやjsを使わずに、ライブラリの読み込みで実装。

表示件数を変更できるタイプで成功した記載方法は以下。

 

これはハフィントンポスト用の設定で、タイプはATOM。

各パラメータはxmlを見て随時変更すること。

entryだったりitemだったり、日付もpubDateなどとブログによって様々。

※2018年10月現在、ハフィントンポストは個別投稿者のRSS吐き出しをやめている模様。取得できません(泣)

<entry> //ここがブログによってはitemだったりする
<title>取得する記事のタイトル</title>
<link rel="alternate" type="text/html" href="記事のURL"/>
<id>
tag:何かのurl,2017:/theblog//00000
</id>
<published>2017-04-03T10:34:20-04:00</published> //投稿した日付
<updated>2017-04-03T22:02:41-04:00</updated> //更新した日付
<summary>
<![CDATA[
--------記事の内容-----------------
]]>
</summary>

 

▼この記事をベースに色々と調べて組み合わせた。

PHPでRSSやAtomのフィードを取得する方法

 

・はまった箇所①

記事の表示件数の指定。以下を追加することで成功。

$num = 1;//表示させたい件数
$i=0;

foreach( $atom->entry as $entry )
{
    if($i>=$num){
    }
    else{
	// 各エントリーの処理
      $i++;

 

・はまった箇所②

表示はされたがリンクができていない。

↓リンクを取得できなかった記述

$link = $item->link ;	// リンク

RSSのlinkタグのhrefの値の取得の仕方を参考に以下のように変更。

 

↓リンク取得に成功!

$link = $entry->link->attributes()->href;	// リンク

 

【完成】

 <?php
// ライブラリの読み込み
require_once "Feed.php" ;
$feed = new Feed ;

// フィードのURL
$url = "http://feed" ;

$atom = $feed->loadAtom( $url ) ;
$num = 1;//表示させたい件数
$i=0;

foreach( $atom->entry as $entry )
{
    if($i>=$num){
    }
    else{
	// 各エントリーの処理
      $i++;
	$title = $entry->title ;	// タイトル
	$link = $entry->link->attributes()->href; // リンク
	$timestamp = strtotime( $entry->published ) ;	// 更新日時のUNIX TIMESTAMP
	$description = $entry->summary ;	// 詳細
      
	// 表示
	echo '<p class="link_bnr"><a href="' . $link . '" >' . $title . '</a> (' . date( "Y/m/d H:i" , $timestamp ) . ')</p>' ;
} 
} ?>

▼参考にした記事

PHPでRSSやAtomのフィードを取得する方法

ブログのRSSを読み込んで新着記事を表示!PHPを使ってみました