Yahoo API を利用してWEB検索の機能を使おうと考えています。
そこで、
Yahoo!デベロッパーネットワーク - サンプルコード集 ;検索サンプルコード
http://developer.yahoo.co.jp/sample/search/sampl …
このページよりphpファイルをダウンロードして試し一応成功しました。
http://cgi.geocities.jp/ydevnet/sample/search/sa …
(このページはサンプルです)
検索結果を見てみるとごちゃごちゃしていて見にくいです。
そこで以下のようなページにしたいのですが
http://phpspot.org/lab/yapi/web.php?q=yahoo
簡単に修正できないでしょうか?
ファイルは
・common.php
・YJSearchExample.php
なのですが、どの辺りを修正すればいいでしょうか?
ご指導よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
$xml->Resultという配列に連想配列で格納されている値を配列のキー(連想配列名)によって、switch文で振り分けを行っているものになります。
$keyと記述されている部分が、連想配列名
$valueと記述されている部分がその連想配列名に格納されている値
です。
ですので、ここのswitch文の振り分け方法を修正してやれば、表示結果を修正することが出来るのですが、
配列の扱いや条件分岐を修正するのが困難、ということであれば
質問者さんの「簡単に修正できないか」という条件に関しては、「No」となってしまいます。
この回答への補足
ご解答ありがとうございまさいた。
自分でなんとかここまでできました。
http://daily.xsrv.jp/YJSearchExample.php?
後は、タイトルを太字にしてそこにリンクを貼りたいのですが、自分の力では出来ませんでした。(あと、検索結果で各URLの下に「text/html」と言うのも消したいです)
すいませんが、どなたか教えていただけないでしょうか?
よろしくお願いします。
ちなみにYJSearchExample.phpは以下のようになっています。
<?php
/** @mainpage
* 検索ページ
*/
/**
* @file
* @brief 検索結果を表示
*
* 検索フォームを表示し、
* フォームから入力された値を条件に、ウェブ検索APIを利用して、検索した結果をhtmlに埋め込んで表示します。
*
* PHP version 5
*/
require_once('./common.php');//共通ファイル読み込み(使用する前に、appidを指定してください。)
$q=build_query();
// 選択したAPIの種類を設定
$xml = simplexml_load_file($service[$_REQUEST['type']].$q);
// root要素を参照
foreach($xml->attributes() as $name=>$attr) {
$res[$name]=$attr;
}
$first = $res['firstResultPosition'];
$last = $first + $res['totalResultsReturned']-1;
echo "<p>Matched ${res[totalResultsAvailable]}, showing $first to $last</p>\n";
if(!empty($res['ResultSetMapUrl'])) {
echo "<p>Result Set Map: <a href=\"${res[ResultSetMapUrl]}\">${res[ResultSetMapUrl]}</a></p>\n";
}
for($i=0; $i<$res['totalResultsReturned']; $i++) {
foreach($xml->Result[$i] as $key=>$value) {
switch($key) {
case 'Thumbnail':
echo "<img src=\"{$value->Url}\" height=\"{$value->Height}\" width=\"{$value->Width}\" />\n";
break;
case 'PublishDate':
case 'ModificationDate':
break;
default:
if(stristr($key,'url')){
echo "<a href=\"$value\">$value</a><br />\n";
} else {
echo "$value<br />";
}
break;
}
}
echo "<hr />\n";
}
next_prev($res, $first, $last);
done();
?>
すいませんが、よろしくお願いします。
No.1
- 回答日時:
YJSearchExample.php
の
-----------------------------------------------------
for($i=0; $i<$res['totalResultsReturned']; $i++) {
foreach($xml->Result[$i] as $key=>$value) {
-----------------------------------------------------
よりしたにある、switch文のところで
配列のキーにより、HTMLタグで文字列を囲ったものをecho文で出力しています。
恐らくここの条件分岐やHTMLタグで$valueを囲う部分を修正すれば、表示をカスタマイズできるのではないかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String だと「 ByRef引数の型が...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
postgresql関数をつかったレコ...
-
配列一致(要素順番は違うが内容...
-
file_existsでファイル名の部分...
-
CSVデータのn番目だけの値を取...
-
PHPでcsvファイルデータ内の一...
-
配列をループでたくさん宣言し...
-
チェックボックス複数選択 mys...
-
fgetsで取り込んだ文字をexplod...
-
行列
-
C言語 最大値と最小値を求めて...
-
cakephpでのトランザクション処...
-
エラーメッセージ(無効な間接...
-
C言語の配列をPush(追加)する...
-
CArrayの要素としてCStringArra...
-
バイナリファイルの内容を、そ...
-
C言語でCSVファイルの行数を読...
-
PHPでCSVを出力するさいに、ル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
foreachのなかで次のキーを参照...
-
file_existsでファイル名の部分...
-
PHPのカッコ[ ]の使い方について
-
postgresql関数をつかったレコ...
-
multiple属性のPOSTを配列で受...
-
PHPとMySQLの高速化
-
Smartyのテンプレートからjavas...
-
漢字のソートについて
-
配列一致(要素順番は違うが内容...
-
ネストが深い時のforeachはどう...
-
PHPで配列をPOSTデータで送った...
-
PHP 配列の添字に変数は使えない?
-
PHP 多次元配列変数のデータ受...
-
テキストの処理について
-
レンタルサーバでMYSQLに...
-
PHPにてクラスを配列にすること...
-
配列を回すとき、最後の要素だ...
おすすめ情報