この例について
以下の節では、Services_Yahoo のさまざまな機能を
使用する例を提供します。現在収録されているのは、
Yahoo!
Search および Content
Analysis
へのインターフェイスのついてのドキュメントのみです。
Services_Yahoo のすべての public メソッドは、
何か問題が起こった場合には 例外
を発生させるようになっています。そのため、すべての例で try {
... } catch { } ブロックが使用されています。
注意
この例は、シェルのコマンドラインから実行させるように設計されています。
Web ブラウザから試してみたい場合は、結果を読みやすくするために
\n を <br />
に置き換えましょう。
Yahoo! Search との会話
以下の例は、Yahoo! Search
との通信を行います。
例 67-1Web 検索: 結果の一覧表示
このコードは、Yahoo! Search に対して Steve
Fossett という言葉を問い合わせる検索クエリを発行します。
返される結果のひとつひとつについて、その表題が出力されます。
require_once "Services/Yahoo/Search.php";
try {
$client = Services_Yahoo_Search::factory("web");
$results = $client->searchFor("Steve Fossett");
echo "結果の総数: " . $results->getTotalResultsReturned() . "\n\n";
foreach ($results as $result) {
echo $result['Title'] . "\n";
}
} catch (Services_Yahoo_Exception $e) {
echo "エラー: " . $e->getMessage() . "\n";
foreach ($e->getErrors() as $error) {
echo "* " . $error . "\n";
}
} |
デフォルトでは、一回のリクエストで 10 件ずつの結果が返されます。
setResultNumber() メソッドを使用することで、
この数を変更することが可能です。
require_once "Services/Yahoo/Search.php";
try {
$client = Services_Yahoo_Search::factory("web");
// 一度に 20 件ずつ結果を返します
$results = $client->withResults(20)->searchFor("Steve Fossett");
/* ... */ |
|
例 67-2Web 検索: 結果の詳細
このコードは、Yahoo! Search に対してもう一度 Steve
Fossett という言葉を問い合わせます。こんどは
最初に返される結果についての詳細が出力されます。
require_once "Services/Yahoo/Search.php";
try {
$client = Services_Yahoo_Search::factory("web");
$results = $client->searchFor("Steve Fossett");
if ($results->getTotalResultsReturned() > 0) {
$info = $results->current();
echo "表題: " . $info['Title'] . "\n";
echo "概要: " . $info['Summary'] . "\n";
echo "URL: " . $info['Url'] . "\n";
echo "クリッカブル URL: " . $info['ClickUrl'] . "\n";
echo "最終更新日: " . $info['ModificationDate'] . "\n";
echo "Mime 型: " . $info['MimeType'] . "\n";
}
} catch (Services_Yahoo_Exception $e) {
echo "エラー: " . $e->getMessage() . "\n";
foreach ($e->getErrors() as $error) {
echo "* " . $error . "\n";
}
} |
|
注意
画像・ニュース・動画 あるいはローカル検索を行いたい場合は、
factory() のコール時に渡した引数 "web"
を "image"・"news"・"video"
あるいは "local" のいずれかに置き換えればいいだけです。
Yahoo! Content Analysis サービスの使用
以下の例では、Yahoo! が提供する Content Analysis Services
を使用する方法を説明します。
例 67-4Term Extraction Service (用語抽出サービス)
Term Extraction サービスは、大量の文書から有意な単語や熟語を抽出し、
その一覧を返します。
require_once "Services/Yahoo/ContentAnalysis.php";
try {
$search = Services_Yahoo_ContentAnalysis::factory("termExtraction");
$search->setContext("Italian sculptors and painters of the "
. "renaissance favored the Virgin Mary for inspiration.");
$search->setQuery("madonna");
$results = $search->submit();
foreach ($results as $result) {
echo $result . "\n";
}
} catch (Services_Yahoo_Exception $e) {
echo "エラー: " . $e->getMessage() . "\n";
foreach ($e->getErrors() as $error) {
echo "* " . $error . "\n";
}
} |
setQuery() のコールは省略することもできます。
このメソッドでパラメータを設定することにより、エンジンが抽出作業を
行うのを助けることができますが、これは必須というわけではありません。
|