人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

XML(feed)の中に特定の文字列があった場合のみ表示させるPHP

お世話になります。以下の条件でPHPを書きたく、サンプルをいただけないでしょうか。

■やりたいこと
・XML(とあるブログのFeed、同じサーバ上にはない)を読み込む
・読み込んだFeedの中に特定の文字列が入っていたら、HTML上に表示

■例
ブログのフィード: http://hoge.com/feed
探したい文字列:山田
出力結果:
1月1日の日記
山田花子

1月3日の日記
山田太郎
……

->作者に「山田」が含まれる記事をフィルタして表示。
->HTML上に何(日付や作者名など)を表示させるかはこちらでできるため適当で構いません


お手数をお掛けしますが、何卒よろしくお願い致します。

●質問者: cafe-beret
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●500ポイント ベストアンサー

その Feed が ATOM 形式のものだとして、例えば、summary に「山田」が含まれているかどうかを判定する場合は、こんな感じ。

<?php
require "simple_html_dom.php";

// DOM を展開
$html = file_get_html('http://hoge.com/feed');

// <summary> を探す
$summary_list = $html->find('summary');

foreach ($summary_list as $summary) {
 
 // <summary> に「山田」が含まれているか?
 if (preg_match('/山田/', $summary->plaintext)) {

 // <entry> は <summary> の親要素
 $entry = $summary->parent();

 // 必要な要素を取得
 $title = $entry->find('title')[0];
 $date = $entry->find('published')[0];
 ...

 // ここで内容を表示
 echo $title->plaintext. "<br>";
 echo $date->plaintext . "<br>";
 ...
 }
}

お手軽なところで、Simple HTML DOM を使いました。
http://simplehtmldom.sourceforge.net/


cafe-beretさんのコメント
やりたかったことが完璧にできました。 ほんとうに助かりました。ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ