- 締切済み
RSS取得の際に画像も取得したいのです。
初めて質問させて頂きます。 これがPHPに限った質問なのかどうかもよくわかりませんが、どうかお願い致します。 自サイトに、レンタルブログのRSSを取得して更新を知らせたいと思っています。 大黒屋本舗さんのJAVAスクリプトなどを使ったことはあるのですが、 読み込むデータに画像を取得させることは不可能なのでしょうか? 調べても、キーワードが悪いのかヒットしません。 RSSを取得して、タイトルや日付などにプラスして、画像も表示させることは可能でしょうか?こういうふうにしたいんです。→右下のダイアリーhttp://www.bonobos.jp/ ここは取得するのがPHPなのかJAVAスクリプトなのか全然わかりませんが、index.htmlで表示出来ている、というのがミソです(私的に)phpは携帯との振り分けに使ってしまっているので、トップページをphpにすることは出来ないからです。 どうやってやればいいのでしょう?そういったスクリプトってないですか? 私は既存のスクリプトを多少改造出来る程度でほぼプログラミングはわかりません。 板違いでしたら申し訳ありません。 どうか、宜しくお願いします。m(_ _)m
- みんなの回答 (6)
- 専門家の回答
お礼
回答ありがとうございます。 そうですね、RSSのバージョンやブログの種類?を書いてませんでした。 説明不足ですみません。 利用しているブログはJUGEMでRSSは1.0です。 JUGEMは画像を取り出すのに向いてませんでしょうか? HTMLはタグ打ちでやってますので、充分にわかります。 JAVAスクリプトもCGIもPHPも、フリーのソフトをデザイン、用途に合わせての改造程度なら出来ます。 でも大黒屋本舗のツールは、テキストのみの状態で現在も使用していますが、 jsRSS3.15というCGIファイルとテンプレートファイルのみなんですが、 テンプレートはデザインの為にいじりましたが CGIファイルのほうは見てみてもどこがどこだかさっぱりです。 imgで検索をかけても存在しません。 descriptionで探すと複数箇所にありますが、そこにどのように画像を解析するのかわかりません・・・。
補足
お礼に入りきらなかったのでこちらに。 for('header','footer') { $RSS{$_} =~ s/#Version#/$ver/g; $RSS{$_} =~ s/#SiteTitle#/$title/g; $RSS{$_} =~ s/#SiteLink#/$link/g; $RSS{$_} =~ s/#SiteDescription#/$dsc/g; $RSS{$_} =~ s/#SiteCreator#/$cre/g; $RSS{$_} =~ s/#SiteDate#/$day/g; } for(@ENTRY) { my %entry = (); $_ =~ s|\r\n|\n|g; $_ =~ s|\r|\n|g; $_ =~ s|\n|<br />|g; if ($_ =~ m|(?:<title>(.*?)</title>)|is) { $entry{title} = $1 } if ($_ =~ m|(?:<link>(.+?)</link>)|is) { $entry{link} = $1 } elsif($_ =~ m|(?:<link.*?href="(.+?)".* />.*?)|is) { $entry{link} = $1 } if ($_ =~ m|(?:<description>(.+?)</description>)|is) { $entry{description} = $1 } elsif($_ =~ m|(?:<summary.*?>(.+?)</summary>)|is) { $entry{description} = $1 } elsif($_ =~ m|(?:<content:encoded>(.+?)</content:encoded>)|is){ $entry{description} = $1 } if ($_ =~ m|(?:<.*subject.*?>(.+?)</.*subject>)|is) { $entry{subject} = $1 } if ($_ =~ m|(?:<.*creator.*?>(.+?)</.*creator>)|is) { $entry{creator} = $1 } elsif($_ =~ m|(?:<author>.*<name>(.+?)</name>.*</author>)|is) { $entry{creator} = $1 } if ($_ =~ m|(?:<.*date.*?>(.+?)</.*date>)|is) { $entry{date} = $date = $1 } elsif($_ =~ m|(?:<.*issued.*?>(.+?)</.*issued>)|is) { $entry{date} = $date = $1 } if($entry{date} =~ m!(\d+).(\w+).(\d{4}).(\d+):(\d+):(\d+)!) #Y! { my %MON = ('Jan' => 1,'Feb' => 2,'Mar' => 3,'Apr' => 4,'May' => 5,'Jun' => 6,'Jul' => 7,'Aug' => 8,'Sep' => 9,'Oct' => 10,'Nov' => 11,'Dec' => 12); $entry{date} = sprintf("%04d%02d%02d%02d%02d%02d",$3,$MON{$2},$1,$4,$5,$6); } else { $entry{date} =~ s![+|-]\d\d:\d\d!!; $entry{date} =~ s![-|:|T]!!g; } など他にもありますが他に見た質問でこのツールはCDATA部分を読み込まないため、 画像が表示出来ないのだという記述がありました。 他に、phpなどのツールでRSSを画像ごと取り込める、というツールは全然ないんでしょうか。 ありがとうございました。