RSS取得して表示

リンクシェアサイトの新着情報RSSを取得

アフィリエイト リンクシェア


リンクシェアサイトの新着情報一覧

http://www.linkshare.ne.jp/index.xml


rss.php

<?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("&amp;lt;!--","<!--",$str);
	$str=str_replace("--&amp;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&amp;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&amp;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("&amp;lt;!--","<!--",$str);
	$str=str_replace("--&amp;gt; ","-->",$str);
	return $str;
}
?>