RSS取得して表示
リンクシェアサイトの新着情報RSSを取得
アフィリエイト リンクシェア
リンクシェアサイトの新着情報一覧
- RSSのURL
http://www.linkshare.ne.jp/index.xml
<?php require_once("function.php"); $url="http://www.linkshare.ne.jp/index.xml"; $xml=simplexml_load_file($url); $hits=$xml->channel->item; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>リンクシェアサイトの新着情報 RSS表示</title> </head> <body> <p>リンクシェアサイトの新着情報一覧</p> <ul> <?php foreach ($hits as $hit) { ?> <li><a href="<?php echo h($hit->link); ?>"><?php echo h($hit->title); ?></a></li> <?php } ?> </ul> </body> </html>
《function.php》
<?php //htmlspecialchars:文字列中のHTMLを無効化します function h($str) { $str=htmlspecialchars($str, ENT_QUOTES); $str=str_replace("&lt;!--","<!--",$str); $str=str_replace("--&gt; ","-->",$str); return $str; } ?>
YAHOO!デベロッパーネットワーク
- IDの取得
知恵袋 Q&A 一覧
- ベストアンサーのみを表示
知恵袋の詳細ページURLへのリンク
<?php $keyword="検索キーワード"; $keywordurl=urlencode($keyword); $url="http://chiebukuro.yahooapis.jp/Chiebukuro/V1/questionSearch?appid=$yahooappid&query=$keywordurl&condition=solved"; echo $url; ?>
simplexml_load_file関数
- 変数にXMLデータをオブジェクトとして代入
<?php //echo $url; $xml=simplexml_load_file($url); $hits=$xml->Result->Question; ?>
表示部分
- 質問を表示する記述
<?php foreach ($hits as $hit) { ?> <p>Q.<?php echo h($hit->Content); ?> <a href="<?php echo h($hit->Url); ?>">詳しくはこちら</a> </p> <?php } ?>
これで最新の質問投稿が一覧で表示されるようになりました。
しかし、質問のみを表示しても意味がないので、解決済みのベストアンサーのみを取得します。
Yahoo!知恵袋のパラメータ
- all:すべての質問を返します
- open:解答受付中の質問を返します
- vote:投票受付中の質問を返します
- solved:解決済みの質問を返します
リクエストURLのパラメータに「condition=solved」を追加します。
《chie.php》
<?php require_once("yconfig.php"); require_once("function.php"); $keyword="Webの仕事"; $keywordurl=urlencode($keyword); $url="http://chiebukuro.yahooapis.jp/Chiebukuro/V1/questionSearch?appid=$yahooappid&query=$keywordurl&condition=solved"; $xml=simplexml_load_file($url); $hits=$xml->Result->Question; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title><?php echo h($keyword); ?>のQ&A検索結果</title> <style> #container { width: 760px; margin: 20px auto; } p.question { color: #468CDB; } p.question, p.answer { font-size: 0.875em; margin-left: 1.0em; text-indent: -1.0em; } </style> </head> <body> <div id="container"> <h1>「<?php echo h($keyword); ?>」のQ&A検索結果</h1> <?php foreach ($hits as $hit) { ?> <p class="question">Q.<?php echo h($hit->Content); ?></p> <p class="answer">A.<?php echo h($hit->BestAnswer); ?> <a href="<?php echo h($hit->Url); ?>">詳しくはこちら</a> </p> <?php } ?> </div> </body> </html>
《yconfig.php》
<?php // キャッシュの設定情報をここに入れる $cacheOptions = array ( 'cacheDir' => './cache/', 'lifeTime' => '3600',// 60秒 'automaticCleaningFactor' => 200 ); // http://developer.yahoo.co.jp/ // アプリケーションID ※サイトごとに取得が必要 $yahooappid = "WebアプリケーションID"; ?>
《function.php》
<?php //htmlspecialchars:文字列中のHTMLを無効化します function h($str) { $str=htmlspecialchars($str, ENT_QUOTES); $str=str_replace("&lt;!--","<!--",$str); $str=str_replace("--&gt; ","-->",$str); return $str; } ?>