INASOFT 管理人のひとことフリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。 2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。 ・INASOFT Webサイト: https://www.inasoft.org/ ・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/ 2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32] Tweet ■ひさびさにPHPを心赴くままに書いたら2013年 1月 9日(水) 0:00:00 [さくらのブログから転記] |
RSS配信中 | |
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等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|
3213912 (+0650)[+0326] Copyright© 2010-2024 INASOFT |