DMM RSS解釈

投稿者:

PHPを覚えたてのころのDMMのサイトジャンル別RSSを読み込んで自分のアフィリエイトIDを付加してHTMLページに落とすというプログラムを組みました。
今だったら、XML/RSS.php とか SimpleXML とか Smarty とか使ってもっとシンプルに組みますけどw
Cashも使って毎度のリクエストは避けたほうがいいですねー
DMMのRSSはちょっと違うからこんな風に強引に組みました。
<?php
//ヘッダはUTF-8
header(” Content-Type: text/html; charset=UTF-8″ );
//RSSのURL
$url = “http://www.dmm.co.jp/monthly/alice/-/list/=/sort=date/rss=create/_jloff=1/”;
//自分のアフィリエイトID
$id = “dmmのid”;
$i = 0;
$_data = null;
//改行とかそういう表示上の都合で後で使う
$flg = 0;
$content_flg = 0;
//RSSを読み込む
if( $_http = fopen( $url, “r” )){
  while( !feof( $_http ) ){
    $_data = fgets( $_http, 1024 );
    if($flg == 1 ){
      //何もしない
      if( substr_count($_data , “item”) >0
        || substr_count($_data , “description”) >0
        || substr_count($_data , “dc:date”) >0
        || substr_count($_data , “dc:creator”) >0
        || substr_count($_data , “package”) >0
      ){
      
        //タイトルタグを置き換える
      }else if( substr_count($_data , “title”) >0 ){
        $title = “”;
        $_data = str_replace(“<title>”, “”, $_data);
        $_data = str_replace(“</title>”, “”, $_data);
        $title = $_data;
       
        //リンクがあれば自分のidを付加する
      }else if( substr_count($_data , “link”) >0 ){
        $link = “”;
        $_data = str_replace(“<link>”, “”, $_data);
        $_data = str_replace(“</link>”, “”, $_data);
        $link = $_data.$id;
        
      //リンク整形
      echo “<table width=800 class=\”maintable\” >”;
      echo “<tr><td colspan=2 align=left valign=middle>”;
      echo “<a href=\”$link\” target=\”_blank\”><br><b><font style=\”color : blue;\” style=\”font-size:16px\” >$title</font></b></a>”;
      echo “</td></tr>”;
      //コメントの中に画像が入っているのでこんな風に出す
      }else if( substr_count($_data , “<content:encoded>”) >0 ){
        $content_flg = 1;
        $_data = str_replace(“<![CDATA[“, “”, $_data);
        $imgst = strpos($_data , “<img”,0);
        $imgend = strpos($_data , “</a>”,0);
        $linkimage = substr($_data, $imgst, $imgend);
        
        //リンク元の画像がない場合はNOW PRINTING画像を出す
        if($linkimage == ”) $linkimage = “<img src=\”http://yourvideo.heteml.jp/file/printing.jpg\” border=\”0\”>”;
        echo “<tr><td class=\”maintd\”><a href=\”$link\” target=\”_blank\”>$linkimage</a>”;
      //以下データ整形&リンクができればIDを付加してリンクする
      }else if( substr_count($_data , “収録時間”) >0 ){
        $content_flg = 1;
        $_data = “</td><td align=left>”.$_data;
        $_data = str_replace(“\”>”, “$id\”>”, $_data);
        echo $_data;
      }else if( substr_count($_data , “ムービープレビュー”) >0 ){
        $content_flg = 1;
        $_data = “<a href=\”$link\” target=\”_blank\”><b>もっと見る!</b></a></td></tr><tr><td colspan=2 align=center>”.$_data;
        echo $_data;
      }else if( substr_count($_data , “</content:encoded>”) >0 ){
        $content_flg = 1;
        $_data = str_replace(“]]>”, “”, $_data);
        $_data = $_data.”<br><br></td></tr></table><br>”;
        echo $_data;
      }else{
        $_data = str_replace(“\”>”, “$id\”>”, $_data);
         echo $_data;
      }
    }
    if( substr_count($_data , “/image”) >0 ) $flg = 1;
    $i++;
  }
  fclose( $_http );
}
?>

Thank you for reading this post, don't forget to subscribe!

コメントは受け付けていません。