質問: XML(feed)の中に特定の文字列があった場合のみ表示させるPHP お世話になります。以下の条件でPHPを書きたく、サンプルをいただけないでしょうか。 ■やりたいこと ・XML(とあるブログのFeed、同じサーバ上にはない)を読み込む ・読み込んだFeedの中に特定の文字列が入っていたら、HTML上に表示 ■例 ブログのフィード: 探したい文字列:山田 出力結果: 1月1日の日記 山田花子 1月3日の日記 山田太郎 ...... ->作者に「山田」が含まれる記事をフィルタして表示。 ->HTML上に何(日付や作者名など)を表示させるかはこちらでできるため適当で構いません お手数をお掛けしますが、何卒よろしくお願い致します。
回答: その Feed が ATOM 形式のものだとして、例えば、summary に「山田」が含まれているかどうかを判定する場合は、こんな感じ。 ``` を探す $summary_list = $html->find('summary'); foreach ($summary_list as $summary) { // に「山田」が含まれているか? if (preg_match('/山田/', $summary->plaintext)) { // は の親要素 $entry = $summary->parent(); // 必要な要素を取得 $title = $entry->find('title')[0]; $date = $entry->find('published')[0]; ... // ここで内容を表示 echo $title->plaintext. ""; echo $date->plaintext . ""; ... } } ``` お手軽なところで、Simple HTML DOM を使いました。