お世話になります。以下の条件でPHPを書きたく、サンプルをいただけないでしょうか。
■やりたいこと
・XML(とあるブログのFeed、同じサーバ上にはない)を読み込む
・読み込んだFeedの中に特定の文字列が入っていたら、HTML上に表示
■例
ブログのフィード: http://hoge.com/feed
探したい文字列:山田
出力結果:
1月1日の日記
山田花子
1月3日の日記
山田太郎
……
->作者に「山田」が含まれる記事をフィルタして表示。
->HTML上に何(日付や作者名など)を表示させるかはこちらでできるため適当で構いません
お手数をお掛けしますが、何卒よろしくお願い致します。
その 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/
やりたかったことが完璧にできました。
2016/02/07 16:42:10ほんとうに助かりました。ありがとうございます。