PHPでJavascriptを書き出しHTMLから読み込む
ブログの新着記事のリストを表示したいけど、そのページではPHPが使えない。ってときに使えます。また外部のブログのRSSを読み込みたい時に使えます。
まず、PHPで最新の投稿記事をブログのRSSから読み込み、動的な内容に合わせてJavascriptを書き出す。そしてHTMLページからJavascriptで呼出し表示します。
<?php //読み込みたいXMLのパス $rssurl = "http://qwerty.work/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> "; $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('
- '
+'
- ' +'2019-02-14 2019年2月のWindows Update 月例ロールアップ (Windows10/8.1/7)' +' ' +'
- ' +'2019-02-09 複数のJSとCSSをまとめて非同期で読み込むJavascriptのメモ' +' ' +'
- ' +'2019-02-09 Chromium(クロニウム)ブラウザのダウンロードリンク' +' ' +'
- ' +'2019-02-03 サイト表示の高速化にDNS-Prefetch,Preconnect,Prefetch,Prerender,Preloadを試す' +' ' +'
- ' +'2019-01-28 jQuery.jsの読み込みにDeferやAsyncを使ったらエラーでスクリプトが動かないとき' +' ' +'
これをHTMLから以下のように読みこんで表示させます。
すると以下のように表示されます。
フォローしませんか?