静的ページにRSSを表示させる

提供: GeeklogJpWiki

[3]管理方法 > 管理者が導入後すぐ試せる簡単カスタマイズ > 静的ページPHPでページを作成する > RSSフィードを表示する

目次

RSSフィードを表示する

RSSを使ってトップページのセンターブロックで新着情報を表示するPHPです。 静的ページPHPのページを作成する際に、「センターブロックに表示」をチェックすると、トップページに表示されます。

//読み込ませたいRSSファイルを指定してください。
 $urlrss="http://○○○○○○/○○○";
//各項目の説明文の最大表示文字数(先頭から○○文字)
 $limits=30;

$buff="";
$fp=fopen($urlrss,"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);

print("<ul>");
$flag_item=0;
foreach($values as $value){
  $tag=$value["tag"];
  $type=$value["type"];
  $value=$value["value"];
  $tag=strtolower($tag);
  if($tag=="item" && $type=="open"){
    $flag_item=1;
  }elseif($tag=="item" && $type=="close"){
    print("<li><a href='".$link."'>$title</a><br>$content</li>");
    $flag_item=0;
  }
  if($flag_item){
    switch($tag){
      case "title":
        $title=$value;
        break;
      case "link":
        $link=$value;
        break;
      case "description":
        $value=strip_tags($value);
        if(mb_strlen($value)>$limits){
          $content=mb_substr($value,0,$limits)."...";
        }else{
          $content=$value;
        }
        break;
    }
  }
}
print("</ul>");

Geeklog1.5での注意点

Geeklog1.5系から静的ページPHPの出力方法に若干の変更があり、1.4系とは最後の出力処理が変わりました。 「PHPを実行する(return)」の場合と、「PHPを実行する」の場合で、それぞれ対応方法が違います。 これらの対応をしない場合、まっしろなページが出力されることがありますので、中身が何も無い真っ白なページが出力されたら、この対応を行ってください。

※日本語版のGeeklog1.5.1、Geeklog1.5.2では日本版独自カスタマイズとして1.4のままでも動くようにしてあります。

「PHPを実行する」の場合

静的ページPHPのコードの末尾に

echo $retval;

を付加してください。

「PHPを実行する(return)」の場合

静的ページPHPのコードの末尾に

return $retval;

を付加してください。

個人用ツール