PHPでJavascriptを書き出しHTMLから読み込む

  • 投稿
  • 編集

ブログの新着記事のリストを表示したいけど、そのページではPHPが使えない。ってときに使えます。また外部のブログのRSSを読み込みたい時に使えます。

まず、PHPで最新の投稿記事をブログのRSSから読み込み、動的な内容に合わせてJavascriptを書き出す。そしてHTMLページからJavascriptで呼出し表示します。

<?php
//読み込みたいXMLのパス
$rssurl = "http://hoshiya.biz/blog/index.xml?".date( "YmdHis", time() );
$rssdata = simplexml_load_file($rssurl);
//表示件数
$num_of_data = 5;
$outdata = "'<ul>'\n";
	for ($i=0; $i<$num_of_data; $i++){
		$pubDate = $rssdata->channel->item[$i]->pubDate;
		$pubDate = date('Y-m-d',strtotime($pubDate));

		$outdata .= "+'<li>'\n";
		$outdata .= "+'<small>". $pubDate . "</small>&nbsp;";
		$outdata .= "<a href=\"";
		$outdata .= $rssdata->channel->item[$i]->link;
		$outdata .= "\">";
		$outdata .= $rssdata->channel->item[$i]->title;
		$outdata .= "</a>'\n";
		$outdata .= "+'</li>'\n";
	}
		$outdata .= "+'</ul>'";
        
//↓これがないと書き出したスクリプトをJavascriptとして認識してもらえない
header("Content-type: application/x-javascript");
echo "document.write($outdata)";
?>

上記を呼び出すと以下の内容のJavascriptが書き出されます。(サンプル

document.write('')

これをHTMLから以下のように読みこんで表示させます。


すると以下のように表示されます。