RSSフィードのURLから新着記事をリスト化してhtmlで出力するソースコードです。
htmlでは以下のように出力されます。
<ul>
<li>新着1</li>
<li>新着2</li>
<li>新着3</li>
</ul>
※phpソース
<ul>
<?php
$RSSURL = "http://hoge.com/RSS.rdf"; // フィードのURL
$buff = "";
$fp = fopen($RSSURL,"r");
while ( !feof($fp) ) {
$buff .= fgets($fp,4096);
}
fclose($fp);
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$buff,$values,$idx);
xml_parser_free($parser);
$in_item = 0;
foreach ($values as $value) {
$tag = $value["tag"];
$type = $value["type"];
$value = $value["value"];
$tag = strtolower($tag);
if ($tag == "item" && $type == "open") {
$in_item = 1;
} else if ($tag == "item" && $type == "close") {
echo <<<EOM
<li class="ls1 w1"><a href="$link" rel="external">$title</a></li>
EOM;
$in_item = 0;
}
if ($in_item) {
switch ($tag) {
case "title":
// 文字コードの変換(UTF-8をEUC-JP で出力)
$value = mb_convert_encoding($value, "EUC-JP", "UTF-8");
$title = $value;
break;
case "link":
$link = $value;
break;
case "description":
//
文字コードの変換(UTF-8をEUC-JP で出力)
$value = mb_convert_encoding($value, "EUC-JP", "UTF-8");
$description = $value;
break;
}
}
}
?>
</ul>
|
変更すべきところはフィードのURLとサーバーの環境に合わせて文字コードを調整する必要があります。
UNIX系ならEUC-JP
LINUX系ならUTF-8
フィードの文字コードと出力表示させるサーバーの文字コードをしっかり把握しましょう。
リストタグとして出力しますので応用としてCSSで装飾する事をお勧めします。
PR