PHPで外部ブログのRSSを取得して表示させる方法 ライブドアブログ編( コピペでできる)

PHP

なんにもしていないのに、今日見たらホームページに載っていたはずのブログの最新記事が消えています!

 

なんにもしてない…のに?(ドキドキ)

ファイルを調べてみると、無料のRSS表示用のウィジェットを利用してライブドアブログの最新記事を表示させていたようなのですが、そのサービスが終了したっぽいです。
なるほど。。。
幸いこのサーバーはphpが動いたので自分で表示用の処理を書きました。その時のコードのメモです。
以下のコードを表示したい場所に貼り付けます。
ライブドアブログの場合、RSSのURLは http://ブログURL/index.rdfです。
ライブドアブログのヘルプ:ブログのRSSフィードについて
<?php
	//RSSのURL
	$rss_url = "RSSのURL";
	
	// 表示したい件数
	$num_data = 5;

	//表示用のタグ
	$output_tag = "";

	$rss = simplexml_load_file($rss_url);
	$array_rss = array();

	foreach ($rss->item as $item) {
		
	    $dc = $item->children('http://purl.org/dc/elements/1.1/');
	    $array_rss[] = array('title'=>$item -> title, 'url' => $item -> link, 'date'=> date('Y/n/d', strtotime($dc->date)));
	}

	if( count($array_rss) < $num_data ){
		$num_data =  count($array_rss);
	}

	for ($i=0; $i<$num_data; $i++){

	  	$title = $array_rss[$i]['title'];
		$url = $array_rss[$i]['url'];
		
		$tag_dt = "<dt>".$array_rss[$i]['date']."</dt>\n";
		$tag_dd = "<dd><a href=\"".$url."\" target=_blank>".$title."</a></dd>\n";

		$output_tag.= $tag_dt.$tag_dd;

	}
	echo "<dl>";
	echo $output_tag;
	echo "</dl>";
?>
今回は表示したいページの拡張子がhtmlだったので以下のようにjavascriptとして表示させることに。
(php書いてアップした後に気づいた…)

index.html
└  rss_chk / rss_chk.js
       rss_chk.php

html

<script src="rss_chk/rss_chk.js" type="text/javascript" ></script>

 

rss_chk.js

document.write('<script type="text/javascript" src="rss_chk/rss_chk.php"></script>');

 

rss_chk.php

<?php
header("Content-type: application/x-javascript");
//RSSのURL
$rss_url = "RSSのURL";
// 表示したい件数
$num_data = 5;

$out_data = "";

$rss = simplexml_load_file($rss_url);
$array_rss = array();

foreach ($rss->item as $item) {
	$dc = $item->children('http://purl.org/dc/elements/1.1/');
	$array_rss[] = array('title'=>$item -> title, 'url' => $item -> link, 'date'=> date('Y-m-d', strtotime($dc->date)));
}

if( count($array_rss) < $num_data ){
	$num_data = count($array_rss);
}

for ($i=0; $i<$num_data; $i++){
	$title = $array_rss[$i]['title'];
	$date =  $array_rss[$i]['date'];
	$url = $array_rss[$i]['url'];

	$tag_date = "<dt>".$date."</dd>";
	$tag_title = "<dd><a href=\"".$url."\" target=_blank>".$title."</a></dd>";
	$out_data.= $tag_date.$tag_title;

}
echo "document.write('<dl>');";
echo "document.write('$out_data');";
echo "document.write('</dl>');";

たぶん、RSS1.0であれば、どこのブログでも使えるんじゃないかな?

タイトルとURLをコピーしました