せっかく RSS で更新情報を提供したんだから、手書きで同じことをトップページに書くのはアホらしい。そこで、PHP の XSLT を使って、RSS の内容を整形して流し込んでみた。
更新情報の提供がすごく楽になったはず。
参考: http://php.morva.net/manual/ja/ref.xslt.php
PHP4向け (当サーバー・s5.xrea)
<?php
$xslt = xslt_create();
$result = xslt_process($xslt, 'rss.rdf', 'rss.xsl');
if ($result) {
echo $result;
}
xslt_free($xslt);
?>
PHP5向け
<?php
$xml = new DomDocument;
$xml->load('rss.rdf');
$xsl = new DomDocument;
$xsl->load('rss.xsl');
$xslt = new XSLTProcessor;
$xslt->importStyleSheet($xsl);
echo $xslt->transformToXML($xml);
?>
XSLファイル
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:rss="http://purl.org/rss/1.0/">
<xsl:template match="/">
<xsl:apply-templates select="rdf:RDF" />
</xsl:template>
<xsl:template match="rdf:RDF">
<ul>
<xsl:apply-templates select="rss:item" />
</ul>
</xsl:template>
<xsl:template match="rss:item">
<xsl:if test="position()<=5">
<xsl:variable name="yy" select="substring(dc:date, 3, 2)" />
<xsl:variable name="m" select="number(substring(dc:date, 6, 2))" />
<!--xsl:variable name="mm" select="substring(dc:date, 6, 2)" /-->
<xsl:variable name="d" select="number(substring(dc:date, 9, 2))" />
<!--xsl:variable name="dd" select="substring(dc:date, 9, 2)" /-->
<li><a href="{rss:link}"><xsl:value-of select="rss:title" /></a> [<xsl:value-of select="concat($yy, '年', $m, '月', $d, '日')" />]</li>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

コメントする