Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
はてなのAPIを使う際に503エラーが出る問題と解決策 ref: http://qiita.com/takuya-andou/items/97a68bdae1b7050d3fa5
<?php
// 取得するフィードURLを指定
$feed = 'http://b.hatena.ne.jp/hotentry?mode=rss' ;
// フィードを取得してオブジェクトに変換
$obj = simplexml_load_string( @file_get_contents( $feed ) ) ;
// エラー判定
if( !$obj || !isset( $obj->item ) || empty( $obj->item ) )
{
echo '<p><a href="' . $feed . '" target="_blank">フィード</a>を取得できませんでした…。</p>' ;
}
else
{
// HTML
$html = '' ;
// 個々のエントリーを読み込んでいく
foreach( $obj->item as $item )
{
// 各値の整理
$url = (string)$item->link ; // URL
$date = $item->children( 'dc' , true )->date ; // エントリーの日付
$title = (string)$item->title ; // タイトル
$category = $item->children( 'dc' , true )->subject ; // カテゴリ
$count = $item->children( 'hatena' , true )->bookmarkcount ; // ブクマ数
// 日付の整形
$date = date( 'Y/m/d H:i:s' , strtotime( $date ) ) ;
// HTML
$html .= '<dd>' ;
$html .= '[' . $category . '] - ' . $title . ' (' . $date . ') ' . $count . 'users' ;
$html .= '<br><a href="' . $url . '" target="_blank" rel="nofollow">' . $url . '</a>' ;
$html .= '</dd>' ;
}
// 出力
echo '<h2>実行結果</h2>' ;
echo '<dl>' ;
echo '<dt>取得したフィード</dt>' ;
echo '<dd><a href="' . $feed . '" target="_blank">' . $feed . '</a></dd>' ;
echo '<dt>取得結果</dt>' ;
echo $html ;
echo '</dl>' ;
}
?>
$options = array(
'http' => array(
'header' => 'from_rss_application',
),
);
$context = stream_context_create($options);
// フィードを取得してオブジェクトに変換
$obj = simplexml_load_string( @file_get_contents( $feed ,false,$context) ) ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.