WADAXというレンタルサーバーで外部ブログのRSSを取得し、新着記事一覧を表示させようとしました。
が、PHPの設定がallow_url_fopen=0に設定されていて、simplexml_load_fileが使えなかった。
以下のコードで表示できました。
<?php
function curl_get_contents($url, $timeout = 60)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$result = curl_get_contents('https://○○○○.com/rss.xml', 120); //取得したいブログのRSSのURL
$rssData = simplexml_load_string($result);
$return_html = '<div class="box">';
$entry_date = '';
$i = 0;
foreach ($rssData->channel->item as $entry) {
if ($i >= 10) { //表示したい件数 10件
break;
} else {
$title = $entry->title; //【記事タイトル】
$entry_date = date('y年m月d日', strtotime($entry->pubDate)); //【投稿日】
$link = $entry->link; //【記事リンク】
//出力する html
$return_html .= '<article class=\"item\"><a href="' . $link . '" target="_blank"><time class="time">' . $entry_date . '</time><p class="ttl">' . $title . '</p></a></article>';
$i++;
}
}
$return_html .= '</div>';
echo "document.write('$return_html');";
取得したいRSSのURLを設定してください。
index.htmlに記事一覧を挿入したい箇所に下記コード。
<script type="text/javascript" src="feed.php"></script>
※index.htmlとfeed.phpが同フォルダにある場合。
以下のコードが生成されます。
<div class="box">
<article class="item">
<a href="https://○○○○.html" target="_blank">
<time class="time">22年01月01日</time>
<p class="ttl">タイトル1</p>
</a>
</article>
<article class="item">
<a href="https://○○○○.html" target="_blank">
<time class="time">22年02月02日</time>
<p class="ttl">タイトル2</p>
</a>
</article>
</div>