見出し画像

PHPでFC2ブログのRSSから記事の投稿日を取得

TechAcademyに解説記事がありました。
コピペしてみましたが動きません。

$invalid_characters = '/[^\x9\xa\x20-\xD7FF\xE000-\xFFFD]/';

正規表現のバックスラッシュが記事の掲載時に抜けてしまったのかもしれません。
上記のように変更したところ記事の取得ができました。

そのあたりも含めていろいろなサイトのRSSを取得できるようにした記事がQiitaにありました。
TechAcademyの記事をベースにして発展させたものです。

記事を参考にしながらいろいろやってみました。

まずVScodeでsimplexml_load_string($feed)で取得した内容をdumpしてみます。
PHPは完全に独学です。
VScodeのターミナルでPHPのコードを実行できる事を知ったのも数日前。
まずVScodeのコマンドパレットを使って書いたコードのパスを取得します。

php C:\hoge\fuga\rss_test.php

それをコピペして、ファイル名の前にphpと入力してphpを実行。

はい、わかってます。普段からこの作業をやっている人にはどうでもいい話ですね。
3年間毎日PHPプログラムを書いているのに今頃知った私のような人もいるので、もしかしたら意味があるのかもしれない…と思っただけです。

ブログの内容がでてきました。
XAMPPのローカルサーバーがなくてもPHPでいろいろできるんですね。

ただ、表示された配列には投稿時刻に関する情報が含まれていません。

QiitaのサンプルプログラムにもFC2ブログのRSS1.1の記事から投稿時刻を取得する方法は記述されていません。
ホームページにブログの新着記事と投稿日をRSSで取得して掲載したいと思った時に投稿日の取得ができなかったら?
以前から使用させて頂いているブログのRSSから記事の画像を取得するPHPプログラムを掲載しているブログのコードを読み直してみました。

上記のコードを参考にしながら、何がどうなっているのか調べてみました。

$item->children('http://purl.org/dc/elements/1.1/')->date;

こんな風に書かないと

<dc:date>2021-06-02T21:00:34+09:00</dc:date>

<dc:date>のようなxmlのタグは解析できないようです。

FC2ブログのRSSから記事の投稿時刻を取得する事ができました。

TechAcademyのコードをFC2ブログのRSS1.1用に書き直したコードを実行してみました。
投稿日時を含む新着記事一覧の取得に成功しました。
あとは、そこから出力したい情報をしぼりこむだけです。

アクセス数激減中のブログはこちら。


この記事が気に入ったらサポートをしてみませんか?