|
![]() ![]() ![]() ![]() ![]() | |
INASOFTのトップページでは、このブログ(さくらのブログ提供)の更新時間の情報を定期的に取得しています。 その結果得られた情報を、更新日時情報として表示しています。 このための仕組みはPHPで書かれており、「はてなダイアリー」の頃はHTTP経由でヘッダの取得(get_headers関数)を行い、最終更新日時(Last-modified)を求めて、strtotime関数によって文字列変換することによって行っています。 さくらのブログへの移行後、この方法を用い続けていたのですが、どうもうまくいかない場合がある様子。 というわけで、方法を考えたところ、RSSから情報を取得すれば良いかなぁと思いつき、さっそく PHP で書いてみることにしました。 // さくらブログから日記更新日時を得る $htdy_url = 'http://blog.inasoft.org/index20.rdf'; $pubDateTag = '<pubDate>'; $pubDateTag_e = '</pubDate>'; $handle = fopen($htdy_url, "r"); if ($handle) { // 問い合わせ成功。<pubDate>タグを探し、最終更新日時とみなす while(false !== ($buf = fgets($handle, 1024))) { $s = stripos($buf, $pubDateTag); if ($s !== false) { $e = stripos($buf, $pubDateTag_e); if ($e !== false) { $htdy = substr($buf, $s+strlen($pubDateTag), $e-$s-strlen($pubDateTag)); break; } } } fclose($handle); $htdy_date = strtotime($htdy); } 途中は色々省略しています。 心赴くままに書きすぎて、コメントがありません。いずれはコメントを書き加えなきゃ。 要は、さくらのブログのRSSにHTTPでアクセスし、その内容をテキストとして取得します。 内容はXMLになっているわけですが、あれこれ考えるのが面倒くさかったので、とりあえず一番最初に見つかった"<pubDate>"の含まれる行を抽出し、さらにその行にあるはずの"</pubDate>"も見つけて、その間にある文字列を取得します。 おそらく日付時刻の文字列形式になっているはずなので、それを日本人がなじむようにstrtotime()に与えて変換し、画面表示用の情報を取得します。 これを、適度な間隔おきに実行します。 最近はWebプログラミングがマイブームです。 目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|
3287609 (+0218)[+0306] Copyright© 2010-2025 INASOFT |