yahooブログ検索APIのxmlをphp5で検索結果を表示

普通に検索すれば出るけどやってみたかったのだった(´ρ`)

上のグローバルナビに「今日のRO記事」というのを追加しました。
https://twodolls.net/news.php

24時間以内に更新されたブログのうち以下のキーワードを含む記事が表示されます。

ラグナロク ルーンミッドガッツ プロンテラ アルデバラン モロク フェイヨン ゲフェン アマツ ジュノー ラヘル ベインス ルティエ コモド ウンバラ リヒタルゼン フィゲル ニブル ジャワイ コンロン 龍之城 モスコ ブラジリス マヌク エルディカスティス フレイヤ アビスレイク ノーグ ゲフェニア スカラバ ギルドダンジョン オーコルニル エンドレスタワー ニーズヘッグ ペロス ルーンナイト ロイヤルガード アークビショップ ウォーロック ギロチンクロス シャドウチェイサー 影葱 ミンストレル ワンダラー ソーサラー ホムンクルス 教範 エンペ バリケ メギン イグ幹

結果を見ながら他の意味で使われることが多いようなキーワードは削ったり、RO特有のキーワードを思い出したら追加したりして正確さを上げていきます

★作る時にやったことメモ★

■登録してアプリケーションIDをもらう
yahooデベロッパーネットワーク
http://developer.yahoo.co.jp/webapi/search/

■参考にしたサイト
第3回 PHPを利用してXMLを処理する方法 - マッシュアップ講座:
PHP5でRSSやXMLを簡単に読み込む方法

■できたコード(続きへ)

XMLのサンプルXMLのサンプル

このxmlは先頭文字が大文字なので使うときは$xml->Resultのようにあわせる

<ul>
<?php
//ラグナロクの検索結果を表示する関数
function lwws($appid,$query,$results,$term){
//XMLデータ取得用ベースURL
$req = "http://search.yahooapis.jp/BlogSearchService/V1/blogSearch";
//XMLデータ取得用リクエストURL生成
$req .= "?appid=".$appid."&query=".$query."&results=".$results."&term=".$term;
//XMLファイルをパースし、オブジェクトを取得
$xml = simplexml_load_file($req)
 or die("XMLパースエラー");
foreach ($xml->Result as $result) {
$url = $result->Url;
$title = $result->Title;
$desc =$result->Description;
$ret .= "<li><a href=\"$url\" title=\"$title\" target=\"_blank\">$title</a><blockquote>$desc</blockquote><br /></li>\n";
}
return $ret;
}
echo "<h2>ブログ検索結果(自動更新)</h2>\n";
echo "<p>24時間以内に更新された「ラグナロク関連のキーワード」のあるブログ記事を表示します。関係なかったらゴメン</p>\n";
//リクエストパラメータ設定
$appid = "*****ここに入力*****"; //YAHOO API ID
$query = "*****ここに入力*****"; //※1
$results = 45; // 1~50 記事の数
$term = "day"; //day , week, month しぼりこみ
//関数をコールする
echo lwws($appid,$query,$results,$term);
?>
</ul>


※1 検索キーワード
・すべて含む検索は普通にスペース区切り
 キーワード1 キーワード2

・省くのも普通にマイナスをつければいい
 キーワード1 -キーワード2

・OR検索は下記のように()でかこむようです
 (キーワード1 キーワード2 キーワード3)

できた検索ワードはUTF-8でURLエンコードします
下記のサイトが便利です
http://www.tagindex.com/tool/url.html

ラグナロク → %e3%83%a9%e3%82%b0%e3%83%8a%e3%83%ad%e3%82%af

文字化けするのでphpファイルもutf-8で保存します